Share via


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 同期または手動インポートの問題が発生した場合は、まず、同期するエンドポイントをチェックします。

  1. WSUS サーバーで管理者特権の PowerShell コマンド プロンプト ウィンドウを開きます。

  2. 現在の同期エンドポイントを見つけるには、次の 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 のトラブルシューティング

  1. [エンドポイント] で PowerShell スクリプトを実行して、WSUS サーバーが使用するエンドポイントを決定します。 おそらく、動作しているサーバーが または https://sws1.update.microsoft.comhttps://fe2.update.microsoft.com通信しており、失敗したサーバーが とhttps://sws.update.microsoft.com通信していることがわかります。

  2. 手動で更新プログラムを %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 存在しない場合は、次の手順に従います。

    1. フォルダーに W3wp.exe.config という名前の新しいファイルを %SystemRoot%\system32\inetsrv 作成します。

    2. メモ帳などのテキスト エディターでファイルを開きます。

    3. ファイルに次の行を追加し、ファイルを保存します。

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
         <runtime>
            <AppContextSwitchOverrides value="Switch.System.Net.DontEnableSystemDefaultTlsVersions=false"/>
         </runtime>
      </configuration>
      

    ファイルが既に %SystemRoot%\system32\inetsrv\w3wp.exe.config 存在する場合は、次の手順に従います。

    1. メモ帳または別のテキスト エディターでファイルを開きます。

    2. 構成要素>のすぐ下に次の行を<追加し、ファイルを保存します。

      <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 のバージョンを確認するには、次の手順に従います。

  1. WSUS サービスを再起動します。

  2. 管理者特権のコマンド プロンプトでを実行 iisreset して、WSUS にスタートアップ シーケンスを強制的に実行します。

  3. WSUS コンソールを開き、サーバーに接続します。

  4. を開き %Program Files%\Update Services\LogFiles\SoftwareDistribution.logSCHANNEL プロトコルから始まるエントリを探します。 次の例のようなエントリが表示されます。

    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

次のスクリーンショットは、接続試行のネットワーク キャプチャを示しています。

2 番目のネットワーク キャプチャのスクリーンショット。

ネットワーク キャプチャでは、フレーム 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には、次の更新トラックが含まれています。

WINDOWS SERVER 2012 および Windows Server 2012 R2 の WSUS では、次のいずれかの月次ロールアップ以降の月次ロールアップがインストールされていない限り、同期に TLS 1.2 を使用できません。

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 サーバーで次の手順を実行します。

  1. WSUS サービスを再起動します。

  2. 管理者特権のコマンド プロンプトからを実行 iisreset して、WSUS にスタートアップ シーケンスを強制的に実行します。

  3. WSUS コンソールを開き、サーバーに接続します。

  4. を開き %Program Files%\Update Services\LogFiles\SoftwareDistribution.logSCHANNEL プロトコルで始まるエントリを検索します。 次の例のようなエントリが表示されます。

    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)

次のスクリーンショットは、接続試行のネットワーク キャプチャを示しています。

3 番目のネットワーク キャプチャのスクリーンショット。

ネットワーク キャプチャでは、フレーム 95 は TLS 1.0 を使用するクライアント Hello パケットです。 フレーム 96 は、 からの https://sws.update.microsoft.comRST パケットです。 エンドポイントは 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 との通信は失敗します。

次のスクリーンショットは、ネットワーク キャプチャを示しています。

4 番目のネットワーク キャプチャのスクリーンショット。

ネットワーク キャプチャでは、フレーム 400 は TLS 1.2 を使用するクライアント Hello パケットです。 フレームの詳細は、クライアントによって送信された暗号を示します。 フレーム 404 は、 からの https://sws.update.microsoft.comRST パケットです。 共通の暗号がないため、同期は失敗します。

問題 5 の解決策

この問題を解決するには、次の手順を実行します。

  1. の出力 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
  2. GPO によって暗号が設定されていない場合は、次のレジストリ サブキーを見つけます。

    HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002

    必要な暗号のいずれかをレジストリ キーの Functions 値に追加します。

  3. WSUS サーバーを再起動します。

手動インポートエラーを防ぐには、 問題 1 の解決策も適用します。

正常な接続

次のスクリーンショットは、Windows Server 2016 WSUS サーバーが更新プログラムを同期したときに正常に接続されたことを示しています。

5 番目のネットワーク キャプチャのスクリーンショット。

6 番目のネットワーク キャプチャのスクリーンショット。

ネットワーク キャプチャでは、フレーム 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.comhttps://sws1.update.microsoft.com、または https://fe2.update.microsoft.comを含む CONNECT 要求が表示される場合があります。 WSUS は、サポートされている暗号を使用してクライアント Hello パケットを発行します。 TLS バージョンが間違っているために接続が成功しなかった場合、または共通の暗号がない場合は、RST パケットが表示される場合と表示されない場合があります。 プロキシは、接続の終了を示すために FIN をクライアントに返す傾向があります。 ただし、これはすべてのプロキシ サーバーに当てはまるとは言えない場合があります。 一部のプロキシ サーバーは、RST パケットまたは他の何かを送信します。

プロキシを使用する場合は、WSUS が WU エンドポイントと直接通信していないため、プロキシ サーバーの内部インターフェイスの IP アドレスを把握する必要があります。 プロキシ サーバーの IP アドレスを取得できない場合は、ネットワーク キャプチャで CONNECT 要求を検索し、Windows Update エンドポイントの URL を検索します。

関連情報