MBSAを使用したWindowsUpdateのオフライン適用

MBSAを使用したWindowsUpdateのオフライン適用

2016年9月6日追記

この投稿にはより新しい記事があります。
2016年版のMBSA&Windows 10検証を行いました。
[2016年Win10検証]MBSAを使用したWindowsUpdateのオフライン適用 | 徒労日記

 

完全にインターネットに接続しない端末でも、WindowsUpdateは出来る限り当てておく必要があります。今回は一度もネットに繋がない制約のなかでのWindowsUpdate=Windows更新プログラムについてメモします。

適用

  • 導入先要件により、一度もインターネット接続できない装置
  • Windows 7 (32bit/64bit) 全エディション
  • Windows 2008 Server R2

OSについては基本一緒だと思いますが、世代により用意するファイルや適用する更新プログラムの適用方法が変わるようです。

必要なWindows更新プログラムを調べる

対象にどんなWindows更新プログラムが必要かを調べる為、Microsoftの提供するMicrosoft Baseline Security Analyzer (MBSA)を使用します。

  1. MBSAのダウンロード
    Baseline Security Analyzer 2.2 – ダウンロード FAQ リソース | TechNetからMBSAをダウンロード
    現在のバージョン2.2はWindows7、Windows 2008 Server R2に対応しています。
  2. カタログファイルのダウンロード
    MBSA よく寄せられる質問より引用

    • Microsoft Web サイト から入手可能なセキュリティ更新プログラムのカタログ (Wsusscn2.cab)
    • http://update.microsoft.com/redist/wuredist.cab から入手可能な Windows Update 再配布カタログ (wuredist.cab)
    • Microsoft Web サイトから入手可能、または http://update.microsoft.com/redist/wuredist.cab の wuredist.cab ファイルのコンテンツを検証した、Windows Update サイトへのアクセスに対する承認カタログ (Muauth.cab)
    • Windows Update エージェント スタンド アロン インストーラー (インストールされていない場合)
      • x86 ベースのコンピューター (WindowsUpdateAgent30-x86.exe) 用または
      • x64 ベースのコンピューター (WindowsUpdateAgent30-x64.exe) 用または
      • ia64 ベースのコンピューター (WindowsUpdateAgent30-ia64.exe) 用について、最新のバージョンは、http://update.microsoft.com/redist/wuredist.cab の wuredist.cab ファイルのコンテンツを検証してから入手可能です。

    Windows 7の場合、必要になるのは太字の3つだけです。入手したファイルは
    C:\Documents and Settings\xxxxx(Username)\AppData\Local\Microsoft\MBSA\2.0\Cache
    へコピーします。(フォルダは一度MBCAを起動して、適当に実行すれば作成されます)

  3. 対象マシン上での実施
    インストールしたMBSAを起動すると、こんな画面が出てきます。
    GUIでスキャンする場合、「単一のコンピュータをスキャンする」を選んだ後、次の画面「詳細なUpdate Services オプション」をチェックし、「オフラインカタログのみ使用してスキャンする」を選んでから「スキャンの開始」を押します。
    チェック中読み込めませんでした的なメッセージが出てもキニシナイ。以下参考にさせていただいた各サイト。

  4. その後の処理を考えるとコマンドライン。
    GUIの結果はマイドキュメントに吐き出されますが、自分は見辛かったのでコマンドライン版で実施しました。

    c:
    cd "\Program Files\Microsoft Baseline Security Analyzer 2"
    mbsacli.exe /xmlout /unicode /nd /nvc > c:\outputfolder\mbsareport.xml

    出力されたファイルには必要なアップデート、適用済みのアップデート、カタログファイルの更新日付などが記載されています。いつ時点のアップデートなのかは最も気になるところでしたが、日付は9日前の4/10。ちゃんとWsusscn2.cabは更新されている様です。

更新プログラム(KBxxxx)を一括ダウンロードする

正確には「途中から」一括ダウンロード、です。

色々方法はありそうでしたが、一件一件手作業で検索→確認→ダウンロードする事にしました。全部自動でやったらSilverlightのDeveloper Kitとか入れようとするし。
結果テキストから希望のKBxxxxxx番号をコピーし、以下のサイトで検索してバスケットにいれていきます。

Microsoft Update カタログ

バスケットに入れてしまえば、あとは一括で指定フォルダにダウンロードしてくれます。

結果ファイルをXML形式で出力すると、KBファイルのダウンロードURLも記載されます。そこから抜き出してダウンロードツールなどで一括ダウンロード、という手もありますが落ちてくるファイルがほとんど.cabなこともあり今回はパスしました。その場合参考になりそうなのはこちらのサイト。

Windows更新プログラムをオフライン一括適用Add Star

一括適用のバッチファイルを作る

更新ファイルが準備できたら、一個一個実行しなくていいようにバッチファイルを作成。今回ダウンロードされたデータは.exe、.cab.、.msuの3種類。.msuは比較的新しいWindowsにて使用されるコンポーネントファイルです。
それぞれ適用の仕方が違うので、バッチファイルを作成する時は注意が必要。前準備として、ダウンロードされたファイルはそれぞれ拡張子ごとにフォルダわけしておきます。

.msu

dir /b > updatemsu.bat

などのコマンドでファイルリストを作成。テキストエディタで開いたのちに余分な行をカットして、行頭には”wusa “を、行末には” /quiet /norestart”を追加します。
やり方は自由で問題ありませんが、自分は単純にテキストエディタの置換機能を使って”X86-all”を”wusa X86-all”で全置き換え、”.msu”を”.msu /quiet /norestart”で置き換えました。


X86-all-windows6.1-kb2518869-x86_xxxx.msu

wusa X86-all-windows6.1-kb2518869-x86_xxxx.msu /quiet /norestart

.exe

リストするなど方法はほぼ一緒ですが、先頭には何も付けません。


X86-all-windows-kb890830-v4.7_80b4abxxxxx.exe

X86-all-windows-kb890830-v4.7_80b4abxxxxx.exe /quiet /norestart

.cab

Officeの修正ファイルが全てこのcab形式でした。そのままでは実行されないので、一度アーカイバなどで解凍して中身の.mspファイルを取り出します。.xmlは使いません。あとは.exeと同じようにリスト化→行末に追加すればOK。


Office-viewerxxxxx.cab

Office-viewerxxxxx.msp

Office-viewerxxxxx.msp /quiet /norestart

準備が出来たら、あとはそれぞれのリストファイルの拡張子を.batに変え、コマンドプロンプトで実行すれば終わりです。無事に全部終わったら再起動し、もう一度MBSAを実行し、不足している更新が無くなれば完了です。

いやー、手間だねこれいいからネットつながs

MBSAが吐き出すXMLをサンプルファイルを置いておきます→20120420_MBSA