オフラインのWindowsで必要な更新プログラムを調べる方法

オフラインのWindowsで必要な更新プログラムを調べる方法

インターネットにつながっておらずWSUSサーバーも稼働してない環境のWindowsマシンを更新する場合、設定画面から更新プログラムをチェックしてインストールすることができないため、別のマシンで更新プログラムをダウンロードして、それをもとに手動でインストールする必要があります。

ですが、対象のマシンにどの更新プログラムが必要かを手作業で確認するのは現実的ではありません。

そこでここでは、スクリプトを使ってオフラインのWindowsマシンで必要な更新プログラムを検出する方法を紹介します。

Memo

なお、以下で紹介している手順を実行するには、インターネットに接続できる作業用のWindowsマシンが必要となります。

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
Windows 10 Pro 64bit22H2

wsusscn2.cabをダウンロードする

まず、インターネットにつながっている作業用マシンで、オフラインで更新プログラムをスキャンするのに必要な「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

スクリプトが正常に実行されると、そのマシンに必要な更新プログラムが一覧表示されます。

オフラインのWindowsで必要な更新プログラムを調べる方法

必要な更新プログラムを確認したら、インターネットにつながっている作業用マシンで「Microsoft Update カタログ」のサイトから必要な更新プログラムを検索・ダウンロードして、オフラインのマシン上でインストールします。

なお、ダウンロードした更新プログラムは、そのまま実行してインストールした場合、再起動を要求されることが多いですが、コマンドラインで再起動を抑止するオプションを付けてインストールすることで、複数の更新プログラムを再起動を行うことなく一括インストールできます。詳しくは以下の記事をご参照ください。

Windowsで単体の更新プログラムをコマンドでインストールする方法
ここでは、Windowsの更新プログラムをコマンドでインストールする方法を、更新プログラムファイルの拡張子ごとに解説します。

あとがき

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