
かつて山市良と呼ばれたおじさんのブログ
セイテクエンジニアのブログ かつて山市良と呼ばれたおじさんのブログ メモ. WSUSに更新プログラムをインポートできない|Windowsトラブル解決
2024年12月25日配信
2025年04月23日更新
執筆者:山内 和朗
Windows 10やWindows 11のオプションの更新プログラム(更新プログラムのプレビュー)など、「Windows Server Update Services(WSUS)」に同期されない更新プログラムについては、Microsoftが公開しているPowerShellスクリプトを使用して簡単にインポートすることができます。しかし、このスクリプトを使用してインポートしようとしても、例外エラーが発生してインポートに失敗することがあります。
C/Dリリースと呼ばれるオプションの更新プログラムや、Microsoft Update Catalogのみで提供される更新プログラムなど、WSUSの同期対象になっていないWindowsの更新プログラムは、Microsoft UpdateカタログからWSUSにインポートすることで、WSUSによる配布が可能になります。
このインポート機能は、以前はInternet Explorer(IE)のActiveXコントロールに依存する機能でした。ご存じのように、IEは主要なプラットフォームで2022年6月15日にサポートが終了しました。Windows ServerにはIEが搭載されており、Windows Server 2022以前であれば引き続き利用可能ですが(Windows Server 2025以降はMicrosoft Edgeにリダイレクトされます)、セキュリティ上の理由からWSUSのインポート機能がActiveXコントロールに依存している状況は、適切ではありませんでした。
Microsoftはこの問題に対処するために、2023年7月25日(米国時間)以降、「Update Services」スナップインの「更新プログラムのインポート」を選択したときの動作を、以下のドキュメントへのリダイレクトに変更し、PowerShellスクリプト「ImportUpdateToWSUS.ps1」のコードと使用方法を公開しました。
WSUS と Microsoft Update カタログ > PowerShell を使って WSUS に更新プログラムをインポートする|Windows Server(Microsoft Learn)
このPowerShellスクリプトを最近実行した管理者の多くは、以前はできたはずなのに、次のようなエラーが発生し、インポートに失敗するというWSUSのトラブルになっていないでしょうか。私はこのPowerShellスクリプト公開直後、Windows Server 2022のWSUSに更新プログラムをインポートできることを確認しています。しかし、最近になって同じようにインポートしようとすると、このエラーが発生するようになっていました(画面1)。念のため、Windows Server 2025のWSUSでも試してみましたが、同様の状況です。
“ImportUpdateToWSUS.ps1 : Failed. "2" 個の引数を指定して "ImportUpdateFromCatalogSite" を呼び出し中に例外が発生しました: "接続が切断されました: 送信時に、予期しないエラーが発生しました。。”発生場所 行: 1 文字:1 ...”
画面1 以前はできたことがあっても、最近になって更新プログラムのインポートに失敗するように
この問題は、WSUSへのインポート時に暗号化プロトコルのネゴシエートの結果、TLS 1.2を使用できなかったために発生した可能性があります。Microsoftは、自社の製品やサービスにおけるTLS 1.0とTLS 1.1のサポート終了を段階的に進めてきました。WSUSやMicrosoft Updateカタログも例外ではありません。そして、2024年10月31日にTLS 1.0とTLS 1.1のサポート終了を完了しました。更新プログラムのインポート時のエラーが発生するようになったのも、このサポート終了の影響かもしれません。
2024 年 10 月 31 日までに終了する TLS 1.0 と TLS 1.1 のサポート|ライフサイクル(Microsoft Learn)
TLS 1.2を使用できなかったことが原因であるかどうかは、「C:¥Program File¥Update Services¥LogFiles」ディレクトリにある「SoftwareDistribution.log」を確認し、以下のドキュメントの「問題 1 のトラブルシューティング」と同じエラーが記録されているかどうかで判断できます。同じエラーが記録されていた場合は、「問題 1 の解決策」に示された2つの解決策のいずれかの方法で解消することができます。
WSUS 同期とインポートに関する問題のトラブルシューティング|Microsoft Intune(Microsoft Learn)
1つ目の方法は、レジストリキーを作成して、TLS 1.2を使用するように.NET Frameworkを構成する方法、もう1つの方法は、「インターネットインフォメーションサービス(IIS)」の「アプリケーションプール」(「w3wp.exe」ワーカープロセス)で、リモート側がTLS 1.2をサポートしている場合、ネゴシエートせずにTLS 1.2を使用させる方法です。.NET Frameworkアプリケーション全体か、IISのアプリケーションプール全体か、設定変更の影響を考慮して、適切な方を選択してください。
例えば、後者の方法で対処するには、メモ帳(notepad.exe)などのテキストエディターを使用して「C:¥Windows¥System32¥inetsrv¥w3wp.exe.config」を作成し(存在しない場合)、以下の内容を記述して保存したら、IISRESETコマンドを実行してIISを再起動します(画面2)。「w3wp.exe.config」が既に存在する場合は、<AppContextSwitchOverrides ・・・ >の行を適切な場所に追記してください。
[w3wp.exe.config]
<?xml version="1.0" encoding="utf-8"?> <configuration> <runtime> <AppContextSwitchOverrides value="Switch.System.Net.DontEnableSystemDefaultTlsVersions=false"/> </runtime> </configuration> |
画面2 「w3wp.exe.config」を作成し、IISRESETコマンドでIISを再起動する
以上の設定により、PowerShellスクリプトによる更新プログラムのインポートは成功するようになるはずです(画面3)。
画面3 「ImportUpdateToWSUS.ps1」を「-UpdateId <UpdateID>」パラメーターを指定して実行し、WSUSに更新プログラムをインポート。更新プログラムの<UpdateID>は、Microsoft Updateカタログからコピーしできる