WSUS 同期が SoapException で失敗する
この記事は、使用停止されたエンドポイントが原因でWindows Server Update Services (WSUS) 同期が失敗する問題を解決するのに役立ちます。
元の製品バージョン:WSUS - すべてのバージョン、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012
元の KB 番号: 4482416
現象
WSUS 同期が失敗し、次のエラー メッセージが表示されます。
SoapException: エラーが発生しました
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage メッセージ, WebResponse 応答, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] パラメーター)
at Microsoft.UpdateServices.ServerSyncWebServices.ServerSync.ServerSyncProxy.GetUpdateData(Cookie Cookie, UpdateIdentity[] updateIds)
at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.WebserviceGetUpdateData(UpdateIdentity[] updateIds, List'1 allMetadata, List'1 allFileUrls, Boolean isForConfig)
at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.GetUpdateDataInChunksAndImport(List'1 neededUpdates, List'1 allMetadata, List'1 allFileUrls, Boolean isConfigData)
at Microsoft.UpdateServices.ServerSync.Cat
さらに、WSUS サーバーの WSUS ログ ファイル (%ProgramFiles%\Update Services\LogFiles\SoftwareDistribution.log
) には、次のようなエラー メッセージが記録されます。
<Date> <Time> Error WsusService.25 SoapUtilities.LogException USS ThrowException: Actor = https://fe2.update.microsoft.com/v6/ServerSyncWebService/ServerSyncWebService.asmx, Method = "http://www.microsoft.com/SoftwareDistribution/GetUpdateData", ID=<ID>, ErrorCode=InternalServerError, Message=
at Microsoft.UpdateServices.Internal.SoapUtilities.LogException(SoapException e)
at Microsoft.UpdateServices.Internal.WebServiceCommunicationHelper. ProcessWebServiceProxyException(SoapHttpClientProtocol& webServiceObject, Exception exceptionInfo)
at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.WebserviceGetUpdateData(UpdateIdentity[] updateIds, List\1 allMetadata, List\1 allFileUrls, List\`1& updatesWithSecureFileData, Boolean isForConfig)
at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.GetUpdateDataInChunksAndImport(List\1 neededUpdates, List\1 allMetadata, List\1 allFileUrls, Boolean isConfigData)
at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.GetAndSaveUpdateMetadata(List\1 updates)
at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.ExecuteSyncProtocol(Boolean allowRedirect)
at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.CatalogSyncThreadProcess()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
<Date> <Time> Error WsusService.25 SoapUtilities.LogException USS ThrowException: Actor = https://fe2.update.microsoft.com/v6/ServerSyncWebService/ServerSyncWebService.asmx, Method = "http://www.microsoft.com/SoftwareDistribution/GetUpdateData", ID=\<ID>, ErrorCode=InternalServerError, Message=
at Microsoft.UpdateServices.Internal.SoapUtilities.LogException(SoapException e)
at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.ExecuteSyncProtocol(Boolean allowRedirect)
at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.CatalogSyncThreadProcess()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
原因
この問題は、WSUS サーバーが古い同期エンドポイント を使用するように構成されている場合に発生します https://fe2.update.microsoft.com/v6
。 このエンドポイントは完全に使用停止され、2019 年 7 月 8 日以降は到達できません。
解決方法
この問題を解決するには、WSUS 構成の同期エンドポイントを に https://sws.update.microsoft.com
変更します。
これを行うには、WSUS 階層内のルート WSUS サーバーなど、Microsoft Update に直接接続する最上位の WSUS サーバーで次の手順を実行します。
すべての WSUS コンソールを閉じます。
管理者特権の PowerShell コマンド プロンプトで、次の PowerShell スクリプトを実行します。
注:
最上位サーバーではない WSUS サーバーでスクリプトを実行しないでください。 サーバーがインターネットに接続されていない場合、同期が失敗する可能性があります。
WSUS バージョン 3.x の場合:
[void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") $server = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer() $config = $server.GetConfiguration() # Check current settings before you change them $config.MUUrl $config.RedirectorChangeNumber # Update the settings if MUUrl is https://fe2.update.microsoft.com/v6 $config.MUUrl = "https://sws.update.microsoft.com" $config.RedirectorChangeNumber = 4002 $config.Save(); iisreset Restart-Service *Wsus* -v
Windows Server 2008 (最新の更新プログラムなし) または以前のバージョンを実行している WSUS サーバーは、 または
https://www.update.microsoft.com
同期エンドポイントをhttps://update.microsoft.com/v6
使用している可能性があります。 これらのバージョンの Windows では SHA256 証明書認証がサポートされていないため、PowerShell スクリプトで次の設定を使用します。$config.MUUrl = " https://sws1.update.microsoft.com" $config.RedirectorChangeNumber = 3011
Windows Server 2012以降のバージョンの WSUS の場合:
$server = Get-WsusServer $config = $server.GetConfiguration() # Check current settings before you change them $config.MUUrl $config.RedirectorChangeNumber # Update the settings if MUUrl is https://fe2.update.microsoft.com/v6 $config.MUUrl = "https://sws.update.microsoft.com" $config.RedirectorChangeNumber = 4002 $config.Save() iisreset Restart-Service *Wsus* -v
WSUS 同期が成功したことを確認します。
詳細
PowerShell スクリプトを実行する方法の詳細については、「 PowerShell とは」を参照してください。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示