オフラインの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で必要な更新プログラムを調べてインストールする方法

更新プログラムのダウンロード

必要な更新プログラムを確認したら、インターネットにつながっている作業用マシンで、Webブラウザから「Microsoft Update カタログ」のページを開き、検索ボックスに更新プログラム番号を入力して、更新プログラムを検索します。

オフラインのWindowsで必要な更新プログラムを調べてインストールする方法

検索結果ページが表示されたら、更新プログラムをインストールするWindowsマシンのバージョンやアーキテクチャに対応した更新プログラムの「ダウンロード」ボタンをクリックします。

オフラインのWindowsで必要な更新プログラムを調べてインストールする方法

ダウンロードページが表示されるので、表示されているリンクをクリックして、更新プログラムをダウンロードします。

オフラインのWindowsで必要な更新プログラムを調べてインストールする方法

更新プログラムのインストール

ダウンロードした更新プログラムファイルは、拡張子がmsuやexeならそのままダブルクリックしてインストールできますが、cab形式の場合はコマンドでインストールする必要があります。

また、更新プログラムをそのまま実行してインストールした場合、再起動を要求されることが多いため、適用する更新プログラムが多いときは、コマンドラインで再起動を抑止するオプションを付けて一括インストールするのがおすすめです。

cab形式の更新プログラムのインストール方法や、複数の更新プログラムを再起動を行うことなく一括インストールする方法は、以下の記事をご参照ください。

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

あとがき

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