
かつて山市良と呼ばれたおじさんのブログ
セイテクエンジニアのブログ かつて山市良と呼ばれたおじさんのブログ vol.126 WSUSにさよなら|どうする!?残る閉域網の更新管理(1)
2025年07月31日配信
2025年07月31日更新
執筆者:山内 和朗
これまで、非推奨になった「Windows Server Update Services(WSUS)」の代替ソリューションとして、「Microsoft Intune」と「Azure Update Manager」について評価してきました。今回から数回に分け、WSUSにはできても、これらの代替サービスにはできない、クローズドネットワーク(閉域網)にあるデバイスやサーバーの更新について1つの代替案を示します。
WSUSは、オンプレミスのトポロジの最上位にあるWSUSサーバーの1台(アップストリームサーバー)がMicrosoft Updateに接続できれば、更新カタログを同期して更新プログラムをダウンロードし、下位のWSUSサーバー(ダウンストリーム)にそのすべてのコンテンツを同期できます。完全に切断されたネットワークでも、コンテンツをメディア経由でWSUSサーバーにインポートすることができます。WSUSのクライアントは最寄りのWSUSサーバーに接続できれば、更新プログラムの確認とダウンロード、そして報告ができるため、インターネットアクセス経路を持たないクローズドネットワーク(閉域網)内で動作するデバイスやサーバーにも更新プログラムを展開できます。
WSUS 展開を計画する > 1.2. WSUS の展開シナリオを選択する|Windows Server(Microsoft Learn)
一方、 Microsoftが提供するWSUSの代替ソリューションはどれも、エンドポイントのインターネットアクセスが必須です。Microsoft Connected Cache for Enterprise*1 などを配置してネットワークトラフィックを最適化することはできますが、エンドポイントのインターネットアクセスが不要になるわけではありません。
*1 vol.76 オンプレミスWSUSの代替になるか? Microsoft Connected Cache for Enterprise(Preview)をプレビュー|Windows Server 2025大特集(13)
閉域網にあるデバイスやサーバーの更新が必要な場合は、引き続きWSUSの利用を継続することが1つの選択肢です。しかし、将来のWSUS廃止に備えて、閉域網にも対応可能なサードパーティのソリューションを検討する必要があるでしょう。ちなみに、大前提としてインターネットアクセスはWindows ServerやWindowsのシステム要件の1つ*2 であるため(IoTエディションは除く)、インターネットアクセスができない環境では利用できる機能に制約があることも指摘しておきます。
*2 Windows Server のハードウェア要件|Windows Server(Microsoft Learn)、Windows 11の仕様とシステム要件|Windows(Microsoft)
このブログでは、「Windows Updateエージェント(WUA)API」を利用したWindows Updateの管理(更新の確認、ダウンロード、インストール、更新履歴の確認など)について何度か取り上げてきました。今回はこのWUA APIを利用して、閉域網にあるデバイスやサーバー(Windows Server 2025のサーバーで検証)に不足している更新プログラムを展開する方法を手作りしてみようと思います。人手のかかる方法ですが、PowerShellスクリプトで可能な限り省力化を目指します。
Windows Update エージェント API|Windows アプリ開発(Microsoft Learn)
図1に、構想している更新管理環境を示します。簡単に言えば、閉域網にあるファイルサーバーの1台に専用の共有フォルダーを設け、ここに更新カタログ(オフラインスキャン用のwsuscn2.cab)と更新プログラムを配置して、利用可能な更新プログラムを確認し、更新プログラムをダウンロードしてインストールするという方法です。
図1 共有フォルダーを利用した、クローズドネットワーク(閉域網)内の更新管理環境
共有フォルダーをホストするファイルサーバーは、インターネットアクセス可能なサブネットと閉域網のサブネットの両方に接続されたマルチホーム環境にして、ファイルサーバー側でダウンロードを実行するでもよいですし、インターネットアクセス環境にあるデバイスでダウンロードしたものを、安全の確認されたリムーバブルデバイス(USBメモリなど)経由で閉域網にあるファイルサーバーにコピーするという運用もできます。
以下のドキュメントに、更新カタログファイル(wsusscn2.cab)を使用したオフラインスキャン用のPowerShellスクリプトが示されています。
WUA を使用したオフライン更新プログラムのスキャン > PowerShell|Windowsアプリ開発(Microsoft Learn)
更新カタログファイル(wsusscn2.cab)のダウンロード|Windows Update(Microsoft)
更新カタログファイル(wsusscn2.cab)を共有フォルダーに配置しておき、インターネットアクセス経路を持たないネットワークに接続されたWindows Server 2022のサーバーからこのPowerShellスクリプトを実行してみます。
WUA APIを使用したオフラインスキャンのPowerShellスクリプト(プレーンテキストで表示)
$UpdateSession = New-Object -ComObject Microsoft.Update.Session
$UpdateServiceManager = New-Object -ComObject Microsoft.Update.ServiceManager
$UpdateService = $UpdateServiceManager.AddScanPackageService("Offline Sync Service", "c:\wsusscn2.cab")
$UpdateSearcher = $UpdateSession.CreateUpdateSearcher()
Write-Host "Searching for updates..."
$UpdateSearcher.ServerSelection = 3 # ssOthers
$UpdateSearcher.ServiceID = [string] $UpdateService.ServiceID
$SearchResult = $UpdateSearcher.Search("IsInstalled=0")
$Updates = $SearchResult.Updates
If ($SearchResult.Updates.Count -eq 0) {
Write-Host "There are no applicable updates."
Exit
}
Write-Host "List of applicable items on the machine when using wssuscan.cab:"
For ($i = 0; $i -lt $SearchResult.Updates.Count; $i++) {
$update = $SearchResult.Updates.Item($i)
Write-Host ($i + 1) "> " $update.Title
}
どうする!?残る閉域網の更新管理(1)|(2)