インターネットにつながっておらずWSUSサーバーも稼働してない環境のWindowsマシンを更新する場合、設定画面から更新プログラムをチェックしてインストールすることができないため、別のマシンで更新プログラムをダウンロードして、それをもとに手動でインストールする必要があります。
ですが、対象のマシンにどの更新プログラムが必要かを手作業で確認するのは現実的ではありません。
そこでここでは、スクリプトを使ってオフラインのWindowsマシンで必要な更新プログラムを検出する方法を紹介します。
なお、以下で紹介している手順を実行するには、インターネットに接続できる作業用のWindowsマシンが必要となります。
目次
動作環境
この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。
ソフトウェア | バージョン |
---|---|
Windows 10 Pro 64bit | 22H2 |
wsusscn2.cabをダウンロードする
まず、インターネットにつながっている作業用マシンで、オフラインで更新プログラムをスキャンするのに必要な「wsusscn2.cab」ファイルをダウンロードします。
wsusscn2.cabファイルは、Microsoftによって公開されているセキュリティ関連の更新プログラムに関する情報が含まれたファイルで、毎月第二週水曜日(米国時間の火曜日)に更新されます。
スクリプトファイルを作成する
次に、wsusscn2.cabを使って更新プログラムをスキャンするためのVBスクリプトファイルを作成します。
VBスクリプトファイルの内容は以下のとおりで、内容をメモ帳などで貼り付け、拡張子がvbsのファイルとして保存します。
- 3行目では、wsusscn2.cabファイルの場所を指定します。
- 12行目では、スキャンする更新プログラムの種類を指定できます。(以下の記述では、インストールされていない更新プログラムをすべて検出しますが、重要な更新のみを検出させるといった指定もできます。詳しい指定方法は公式サイトでお調べください。
Set UpdateSession = CreateObject("Microsoft.Update.Session")
Set UpdateServiceManager = CreateObject("Microsoft.Update.ServiceManager")
Set UpdateService = UpdateServiceManager.AddScanPackageService("Offline Sync Service", "c:\wsusscn2.cab")
Set UpdateSearcher = UpdateSession.CreateUpdateSearcher()
WScript.Echo "Searching for updates..." & vbCRLF
UpdateSearcher.ServerSelection = 3 ' ssOthers
UpdateSearcher.ServiceID = UpdateService.ServiceID
Set SearchResult = UpdateSearcher.Search("IsInstalled=0")
Set Updates = SearchResult.Updates
If searchResult.Updates.Count = 0 Then
WScript.Echo "There are no applicable updates."
WScript.Quit
End If
WScript.Echo "List of applicable items on the machine when using wssuscan.cab:" & vbCRLF
For I = 0 to searchResult.Updates.Count-1
Set update = searchResult.Updates.Item(I)
WScript.Echo I + 1 & "> " & update.Title
Next
WScript.Quit
参考:
WUA を使用したオフライン更新プログラムのスキャン - Win32 apps | Microsoft Learn
必要な更新プログラムを調べる
wsusscn2.cabファイルとスクリプトファイルの準備ができたら、更新プログラムをスキャンしたいマシンに2つのファイルを配置して、管理者としてコマンドプロンプトを起動しスクリプトファイルを実行します。
C:¥> cscript Check_UpdateList.vbs
スクリプトが正常に実行されると、そのマシンに必要な更新プログラムが一覧表示されます。
必要な更新プログラムを確認したら、インターネットにつながっている作業用マシンで「Microsoft Update カタログ」のサイトから必要な更新プログラムを検索・ダウンロードして、オフラインのマシン上でインストールします。
なお、ダウンロードした更新プログラムは、そのまま実行してインストールした場合、再起動を要求されることが多いですが、コマンドラインで再起動を抑止するオプションを付けてインストールすることで、複数の更新プログラムを再起動を行うことなく一括インストールできます。詳しくは以下の記事をご参照ください。

あとがき
インターネットに接続されていないオフライン環境のWindowsマシンをWSUSを利用せずに更新したい場合は、上で紹介した方法が役立つでしょう。