WSUS 同期とインポートに関する問題のトラブルシューティング
適用対象: Windows Server Update Services
2020 年 7 月以降、ユーザーは WSUS 同期を経験し、Windows Update (WU) または Microsoft Update (MU) エンドポイントに関する問題をインポートしました。
この記事では、一般的な問題のトラブルシューティング方法について説明します。 これらのトラブルシューティング手法の一部 (ネットワーク キャプチャなど) は、他の多くの問題にも使用できます。
エンドポイント
現在、WSUS では次のエンドポイントを使用してメタデータを同期しています。
https://sws.update.microsoft.com
ほとんどの WSUS サーバーは、この新しいエンドポイントと同期する必要があります。 2020 年 7 月以降、このエンドポイントはトランスポート層セキュリティ (TLS) 1.2 接続のみを受け入れます。 また、一部の暗号が無効になりました。
https://sws1.update.microsoft.com
この古いエンドポイントは最終的に使用停止になります。 詳細については、「 WSUS 3.0 SP2 の同期の終了」を参照してください。 このエンドポイントは、TLS 1.2、TLS 1.1、および TLS 1.0 接続をサポートします。
https://fe2.update.microsoft.com
この古いエンドポイントは WSUS 同期エンドポイントとして使用停止され、そのエンドポイントへの接続は失敗します。 ただし、Microsoft Update と同期するように構成されたクライアントWindows Update、このエンドポイントを引き続き使用できます。
WSUS 同期または手動インポートの問題が発生した場合は、まず、同期するエンドポイントをチェックします。
WSUS サーバーで管理者特権の PowerShell コマンド プロンプト ウィンドウを開きます。
現在の同期エンドポイントを見つけるには、次の PowerShell スクリプトを実行します。
$server = Get-WsusServer $config = $server.GetConfiguration() # Check current settings before you change them $config.MUUrl
Windows Server 2012以降のバージョンは、エンドポイントを使用するように構成するhttps://sws.update.microsoft.com
必要があります。 または を引き続き使用https://sws1.update.microsoft.com
している場合は、「WSUS 同期が SoapException で失敗する」の手順に従って、新しいエンドポイントに変更します。https://fe2.update.microsoft.com
必要に応じて、エンドポイントに関する接続の問題のトラブルシューティングを行 https://sws.update.microsoft.com
います。
問題 1: 手動インポートは失敗するが、同期は成功する
多くのユーザーが WSUS に更新プログラムを手動でインポートし、一部の更新プログラムを手動でインポートする必要があります。 たとえば、月の 3 週目と 4 週目にリリースされたプレビュー更新プログラムは、手動でインポートする必要があります。 2020 年 7 月末以降、更新プログラムを手動でインポートできない場合があります。
ただし、一部の WSUS サーバーでは引き続き更新プログラムを正常にインポートできます。 WU と MU との通常の同期は引き続き機能します。
この問題は、Windows Server 2012、R2、Windows Server 2016、または Windows Server 2019 Windows Server 2012実行されている WSUS サーバーで発生します。
問題 1 のトラブルシューティング
[エンドポイント] で PowerShell スクリプトを実行して、WSUS サーバーが使用するエンドポイントを決定します。 おそらく、動作しているサーバーが または
https://sws1.update.microsoft.com
とhttps://fe2.update.microsoft.com
通信しており、失敗したサーバーが とhttps://sws.update.microsoft.com
通信していることがわかります。手動で更新プログラムを
%Program Files%\Update Services\LogFiles\SoftwareDistribution.log
インポートするときに、ファイルにエラーがないか確認します。 次の例のようなエラーを探します。ProcessWebServiceProxyException found Exception was WebException. Action: Retry. Exception Details: System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) -- End of inner exception stack trace --- ... at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result) at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size) at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size) at System.Net.ConnectStream.WriteHeaders(Boolean async)
エラーの次のメッセージは、WSUS サーバーが TLS を使用して WU/MU に接続しようとしたが、WU/MU が接続を閉じたことを示しています。
既存の接続がリモート ホストによって強制的に閉じられました。
次のスクリーンショットは、接続試行のネットワーク キャプチャを示しています。
ネットワーク キャプチャでは、フレーム 874 は TLS 1.0 を使用するクライアント Hello パケットです。 フレーム 877 はサーバー応答です。 応答には、ACK (A) フラグと RST (R) フラグが含まれます。 エンドポイントは https://sws.update.microsoft.com
TLS 1.2 接続のみをサポートするため、接続を拒否し、リセット応答を発行します。
問題 1 の解決策
この問題は、WSUS インポート機能で TLS 1.2 を使用できないために発生します。
この問題を解決するには、以下のいずれかの方法を使用します。
レジストリ キーを使用して TLS 1.2 を使用するように.NET Frameworkを構成します。
レジストリ キーを設定するには、「強力な 暗号化の構成」を参照してください。 レジストリ キーを設定した後、サーバーを再起動します。
TLS 1.2 を有効にするために、w3wp.exe.config ファイルを作成または更新します。
注:
この変更は、WSUS 用かどうかに関係なく、作成されたすべての w3wp.exe インスタンスに適用されます。 リモート側でこのバージョンがサポートされている場合、W3wp.exe は TLS 1.2 を使用します。 TLS 1.1 と TLS 1.0 が有効になっている場合、ターゲット サイトが TLS 1.2 をサポートしていない場合、W3wp.exe はこれらのプロトコルをネゴシエートします。
ファイルが
%SystemRoot%\system32\inetsrv\w3wp.exe.config
存在しない場合は、次の手順に従います。フォルダーに W3wp.exe.config という名前の新しいファイルを
%SystemRoot%\system32\inetsrv
作成します。メモ帳などのテキスト エディターでファイルを開きます。
ファイルに次の行を追加し、ファイルを保存します。
<?xml version="1.0" encoding="utf-8"?> <configuration> <runtime> <AppContextSwitchOverrides value="Switch.System.Net.DontEnableSystemDefaultTlsVersions=false"/> </runtime> </configuration>
ファイルが既に
%SystemRoot%\system32\inetsrv\w3wp.exe.config
存在する場合は、次の手順に従います。メモ帳または別のテキスト エディターでファイルを開きます。
構成要素>のすぐ下に次の行を<追加し、ファイルを保存します。
<runtime> <AppContextSwitchOverrides value="Switch.System.Net.DontEnableSystemDefaultTlsVersions=false"/> </runtime>
W3wp.exe.config ファイルを作成または更新した後、管理者特権のコマンド プロンプト ウィンドウを開き、 を実行
iisreset
してすべてのワーカー プロセスを再起動します。 手動インポートが機能するかどうかをテストします。
問題 2: TLS 1.1 または TLS 1.0 を無効にした後に手動インポートが失敗する
TLS 1.1 と TLS 1.0 は、安全でないと見なされるため、段階的に廃止されています。 これらのプロトコルを無効にすると、更新プログラムをインポートできなくなります。 ただし、同期は引き続き機能します。
この問題は、Windows Server 2012、R2、Windows Server 2016、または Windows Server 2019 Windows Server 2012実行されている WSUS サーバーで発生します。
問題 2 のトラブルシューティング
WSUS は、起動時に有効になっている SSL/TLS バージョンをログに記録します。 SSL/TLS のバージョンを確認するには、次の手順に従います。
WSUS サービスを再起動します。
管理者特権のコマンド プロンプトでを実行
iisreset
して、WSUS にスタートアップ シーケンスを強制的に実行します。WSUS コンソールを開き、サーバーに接続します。
を開き
%Program Files%\Update Services\LogFiles\SoftwareDistribution.log
、 SCHANNEL プロトコルから始まるエントリを探します。 次の例のようなエントリが表示されます。SCHANNEL Protocol 'TLS 1.0' disabled SCHANNEL Protocol 'TLS 1.1' disabled SCHANNEL Protocols subkey for 'TLS 1.2' not found. Protocol is enabled
これらのエントリは、TLS 1.1 と TLS 1.0 が無効になっており、TLS 1.2 が有効になっていることを示しています。
インポート プロセスが失敗した場合、SoftwareDistribution.logは次のエラー エントリをログに記録します。
ProcessWebServiceProxyException found Exception was WebException. Action: Retry. Exception Details: System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive. ---> System.ComponentModel.Win32Exception: The client and server cannot communicate, because they do not possess a common algorithm
次のスクリーンショットは、接続試行のネットワーク キャプチャを示しています。
ネットワーク キャプチャでは、フレーム 1518 から 1520 は、クライアントとサーバーの間の 3 方向ハンドシェイク (SYN、SYN ACK、ACK) を示します。 フレーム 1536 は、WSUS サーバーからの ACK FIN パケットです。
WSUS は接続を閉じます。これは、インポートに使用する方法を認識しているすべてのプロトコル (SSL3、TLS 1.0、TLS 1.1) が無効になっており、TLS 1.2 を使用できないためです。
問題 2 の解決策
この問題は、WSUS インポートで TLS 1.2 を使用できない問題 1 に似ています。 この問題を解決するには、 問題 1 の解決策を使用します。
問題 3: Windows Server 2012と、セキュリティのみの更新プログラムのみを適用する R2 WSUS サーバー Windows Server 2012同期が失敗する
R2 サービスのWindows Server 2012とWindows Server 2012には、次の更新トラックが含まれています。
- セキュリティのみの更新プログラム。これは累積的ではありません。 セキュリティ修正プログラムのみが含まれています。 たとえば、 2020 年 6 月 9 日 — KB4561673 (セキュリティのみの更新) などです。
- 累積的な月次ロールアップ。 これには、セキュリティのみの更新プログラムのすべてのセキュリティ修正プログラムが含まれており、セキュリティ以外の修正も含まれています。 たとえば、 2020 年 6 月 9 日 — KB4561666 (月次ロールアップ) などです。
WINDOWS SERVER 2012 および Windows Server 2012 R2 の WSUS では、次のいずれかの月次ロールアップ以降の月次ロールアップがインストールされていない限り、同期に TLS 1.2 を使用できません。
- 2017 年 6 月 27 日 — Windows Server 2012のKB4022721 (月次ロールアップのプレビュー)
- 2017 年 6 月 27 日 — Windows Server 2012 R2 のKB4022720 (月次ロールアップのプレビュー)
WSUS で TLS 1.2 を使用できるようにする変更はセキュリティ以外の修正プログラムであり、月次ロールアップにのみ含まれています。
一部のユーザーは、セキュリティのみの更新プログラムのみをインストールし、月次ロールアップをインストールしないことを選択します。 そのため、WSUS サーバーには TLS 1.2 を有効にする更新プログラムがインストールされていません。 エンドポイントが https://sws.update.microsoft.com
TLS 1.2 接続のみを受け入れるように変更された後、これらの WSUS サーバーはエンドポイントと同期できなくなります。 この問題は、新しくインストールされたWindows Server 2012または月次ロールアップをインストールしていない R2 WSUS サーバー Windows Server 2012でも発生します。
問題 3 のトラブルシューティング
WSUS サーバーに正しい更新プログラムがインストールされている場合、WSUS は起動時に有効になっている SSL/TLS バージョンをログに記録します。 WSUS サーバーで次の手順を実行します。
WSUS サービスを再起動します。
管理者特権のコマンド プロンプトからを実行
iisreset
して、WSUS にスタートアップ シーケンスを強制的に実行します。WSUS コンソールを開き、サーバーに接続します。
を開き
%Program Files%\Update Services\LogFiles\SoftwareDistribution.log
、 SCHANNEL プロトコルで始まるエントリを検索します。 次の例のようなエントリが表示されます。SCHANNEL Protocol 'TLS 1.0' disabled SCHANNEL Protocol 'TLS 1.1' disabled SCHANNEL Protocols subkey for 'TLS 1.2' not found. Protocol is enabled
これらのエントリが見つからない場合は、TLS 1.2 を有効にする更新プログラムがインストールされていないことを意味します。
同期が失敗した場合、SoftwareDistribution.logは次のエラー メッセージをログに記録します。
WebServiceCommunicationHelper.ProcessWebServiceProxyException ProcessWebServiceProxyException found Exception was WebException. Action: Retry. Exception Details: System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
次のスクリーンショットは、接続試行のネットワーク キャプチャを示しています。
ネットワーク キャプチャでは、フレーム 95 は TLS 1.0 を使用するクライアント Hello パケットです。 フレーム 96 は、 からの https://sws.update.microsoft.com
RST パケットです。 エンドポイントは TLS 1.2 接続のみをサポートするため、接続を拒否し、リセット応答を発行します。 WSUS サーバーは、終了する前に数回試行します。 したがって、このシーケンスが繰り返されます。
問題 3 の解決策
この問題を解決するには、Windows Server 2012または Windows Server 2012 R2 の最新の月次ロールアップをインストールします。 また、問題 1 の解決策を 適用して、手動インポートの失敗を防ぎます。
問題 4: WSUS が Configuration Manager と統合されている場合、2020 年 7 月以降に同期が失敗する
多くの WSUS インストールは、Microsoft Endpoint Configuration Manager ソフトウェア更新ポイント (SUP) と統合されています。 2020 年 7 月以降、Surface ドライバーを同期するようにConfiguration Managerが構成されている場合、同期エラーが発生する可能性があります。
この問題は、Windows Server 2012、R2、Windows Server 2016、または Windows Server 2019 Windows Server 2012実行されている WSUS サーバーで発生します。
問題 4 のトラブルシューティング
この問題が発生すると、次の例のようなエントリがWsyncmgr.logにログインします。
Calling ImportUpdateFromCatalogSite for driver update GUIDs
Generic exception : ImportUpdateFromCatalogSite failed. Arg = 001d4517-c586-4bb1-9e66-ed6ff8e8d34f. Error =The underlying connection was closed: An unexpected error occurred on a receive.
Generic exception : ImportUpdateFromCatalogSite failed. Arg = 0037641d-bb9b-4530-9568-11e413223106. Error =The underlying connection was closed: An unexpected error occurred on a receive.
また、ファイルは %Program Files\Update Services\LogFiles\SoftwareDistribution.log
次のエラーをログに記録します。
ProcessWebServiceProxyException found Exception was WebException. Action: Retry. Exception Details: System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive. ---> System.ComponentModel.Win32Exception: The client and server cannot communicate, because they do not possess a common algorithm
これらのエラーは、接続が閉じられたことを示します。 この問題は、Configuration Managerが WSUS インポート機能を使用しているために発生します。 そのため、同じ制限があります。
問題 4 の解決策
この問題を解決するには、 問題 1 の解決策を使用します。
問題 5: 暗号が制限されているため、2020 年 7 月以降に同期が失敗する
TLS 接続をセキュリティで保護するために、さまざまな暗号を無効にすることができます。 2020 年 7 月以降、WSUS サーバーは WU/MU と同期できなくなります。 また、 が TLS 1.2 接続のみを受け入れるように変更されると https://sws.update.microsoft.com
、一部の暗号が削除されます。
この問題は、Windows Server 2012、R2、Windows Server 2016、または Windows Server 2019 Windows Server 2012実行されている WSUS サーバーで発生します。
問題 5 のトラブルシューティング
ファイルは %Program Files\Update Services\LogFiles\SoftwareDistribution.log
、同期時に次のエラーをログに記録します。
ProcessWebServiceProxyException found Exception was WebException. Action: Retry. Exception Details: System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
ただし、これらのエントリは、暗号の問題があるかどうかを判断するのに役立ちません。
このような場合は、ネットワーク キャプチャを使用するか、適用されたグループ ポリシー オブジェクト (GPO) をチェックします。 適用された GPO をチェックするには、管理者特権のコマンド プロンプトで次のコマンドを実行します。
gpresult /scope computer /h GPReport.html
ブラウザーで GPReport.html を開きます。
[SSL 暗号スイートの順序] と [SSL 暗号スイート] 設定を検索します。 通常、この設定は構成されていません。 構成されている場合、WU/MU に共通の暗号がないため、問題が発生する可能性があります。
2020 年 8 月の時点で、 https://sws.update.microsoft.com
次の暗号がサポートされています。
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
注:
この一覧は、テクノロジの向上に伴って暗号が徐々に弱くなるため、時間の経過とともに変化します。
GPO が適用され、これらの暗号のいずれかが指定されていない場合、WU/MU との通信は失敗します。
次のスクリーンショットは、ネットワーク キャプチャを示しています。
ネットワーク キャプチャでは、フレーム 400 は TLS 1.2 を使用するクライアント Hello パケットです。 フレームの詳細は、クライアントによって送信された暗号を示します。 フレーム 404 は、 からの https://sws.update.microsoft.com
RST パケットです。 共通の暗号がないため、同期は失敗します。
問題 5 の解決策
この問題を解決するには、次の手順を実行します。
の出力
gpresult
を使用して、SSL 暗号スイートの順序を指定する GPO を特定し、GPO を削除します。 または、 でhttps://sws.update.microsoft.com
サポートされている暗号を含むように変更します。Windows Server 2016と Windows Server 2019 の場合は、次のいずれかの暗号を含めます。
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
Windows Server 2012および 2012 R2 の場合は、次のいずれかの暗号を含めます。
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384
GPO によって暗号が設定されていない場合は、次のレジストリ サブキーを見つけます。
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002
必要な暗号のいずれかをレジストリ キーの Functions 値に追加します。
WSUS サーバーを再起動します。
手動インポートエラーを防ぐには、 問題 1 の解決策も適用します。
正常な接続
次のスクリーンショットは、Windows Server 2016 WSUS サーバーが更新プログラムを同期したときに正常に接続されたことを示しています。
ネットワーク キャプチャでは、フレーム 191 は TLS 1.2 を使用するクライアント Hello パケットです。 フレームの詳細は、クライアントによって送信された暗号を示します。 フレーム 195 は、エンドポイントからのサーバー Hello パケットです。 WU によって選択された TLSCipherSuite はTLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384。 サーバー証明書は、サーバー Hello パケットでも送信されます。
追加の接続セットアップは、フレーム 196 から 203 で行われます。 アプリケーション (WSUS) と https://sws.update.microsoft.com
エンドポイントによるデータ転送は、フレーム 207 から開始されます。
プロキシ サーバーに関する注意事項
プロキシ サーバーを使用する場合、ネットワーク キャプチャの外観は異なります。 WSUS サーバーがプロキシに接続し、宛先 https://sws.update.microsoft.com
、 https://sws1.update.microsoft.com
、または https://fe2.update.microsoft.com
を含む CONNECT 要求が表示される場合があります。 WSUS は、サポートされている暗号を使用してクライアント Hello パケットを発行します。 TLS バージョンが間違っているために接続が成功しなかった場合、または共通の暗号がない場合は、RST パケットが表示される場合と表示されない場合があります。 プロキシは、接続の終了を示すために FIN をクライアントに返す傾向があります。 ただし、これはすべてのプロキシ サーバーに当てはまるとは言えない場合があります。 一部のプロキシ サーバーは、RST パケットまたは他の何かを送信します。
プロキシを使用する場合は、WSUS が WU エンドポイントと直接通信していないため、プロキシ サーバーの内部インターフェイスの IP アドレスを把握する必要があります。 プロキシ サーバーの IP アドレスを取得できない場合は、ネットワーク キャプチャで CONNECT 要求を検索し、Windows Update エンドポイントの URL を検索します。
関連情報
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示