Q

マイクロソフトが提供するQchain.exeというツールを使用してWindows NT/2000に修正プログラム(パッチ)を一括インストールしようと思いますが,マイクロソフトのサポート技術情報「JP296861,QChain.exe を使用して複数の修正プログラムを同時にインストールし,再起動を1回で済ませる方法」などを見ると注意点があるようです。Qchain.exeを使って一括インストールできない場合など,重要なポイントを教えてください。

A

Windows NT/2000ではQchain.exeを使用して修正プログラムを一度のリブートで一括インストール可能です。しかしながらQchain.exeを使用する際,表1の点に注意する必要があります。

(1)一括インストールしたい複数の修正プログラムが重複したファイルを含んでいて,そのファイルがレジストリ・キー
「HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\
Session Manager\KnownDLLs」にエントリされているときはQchain.exeを使用できない
(2)修正プログラムが「HotFix.exe」を含まないときはQchainを使用できない
(3)Qchain.exeを使用する場合でもインストールする修正プログラムはリリース順にする
表1●Qchain.exeを使う際の重要なポイント

(1)一括インストールしたい複数の修正プログラムが重複したファイルを含んでいて,そのファイルがレジストリ・キー
「HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Control\Session Manager\KnownDLLs」にエントリされている場合は,Qchain.exeでサポートされません。

 上記レジストリにエントリされているファイルは,起動時にメモリーに読み込まれるファイルです。

 修正プログラムは,実行されると,GetFileVersionInfoを呼び出して現在システムにインストールされているファイルのバージョンを確認します。しかし,上記レジストリにエントリされたファイルを含む修正プログラムでは,GetFileVersionInfoは常にメモリー上のファイルのバージョンを返し,システム上にあるファイルのバージョンを正しく認識できません。その結果,Qchain.exeが正しく機能しなくなるのです。

 ただし,Windows 2000 Service Pack 2以降の修正プログラムではGetFileVersionInfoがメモリー上のファイルのバージョンではなく,システムにインストールされたファイルのバージョンを確認するように変更されました。そのため,この問題には該当しません。

 結果的に,Windows NT及びWindows 2000 SP1までの修正プログラムでは,上記レジストリにエントリされているファイルが重複している複数の修正プログラムをQchain.exeを使用して一括インストールすることはできません。この場合は,通常どおりQchain.exeを使用しない方法でインストールし,システムをその都度リブートします。

(2)修正プログラムが「HotFix.exe」を含まない場合,Qchain.exeでサポートされません。

 Qchain.exeがサポートする修正プログラムは「HotFix.exe」を含むものに限られます。例えば,Windows Media PlayerやInternet Explorerのセキュリティ修正プログラムには「HotFix.exe」が含まれないため,Qchain.exeではサポートされません。これらの修正プログラムをQchain.exeで一括インストールすることはできないので注意します。

(3)Qchain.exeを使用する場合でもインストールする修正プログラムはリリース順に適用する

 Qchain.exeを使用して一括インストールする場合でも,リリース順にインストールし,最後にQchain.exeを実行します。詳細は「日経Windowsプロ」2002年3月号の特集1「正しいService Pack&パッチの適用法」のpp.85-86を参照してください。

Qchain適用外の修正プログラムの 一括インストールには工夫が必要
 適用はリリース順を守り,その順序の中で,「HotFix.exe」を含まない修正プログラムやレジストリのKnownDLLsにエントリされたファイルが重複する修正プログラムが含まれる場合,Qchain.exeを使用して一括インストールする修正プログラムが制限されます。

 例えば,リリース順に並べてA~F(Aが最も古く,Fが最も新しい)の6つの修正プログラムを一括インストールする場合,Cが「HotFix.exe」を含まず,DとFでKnownDLLsにエントリされているファイルが重複しているとします。この場合以下のようにインストールする必要があります。

(1)A,BはQchain.exeを使用して一括インストールし,リブートします。
(2)Cを単独でインストールしてリブートします。
(3)D,EはQchain.exeを使用して一括インストールし,リブートします。
(4)Fは単独でインストールしてリブートします。

 Qchain.exe自体の詳細はマイクロソフトのサポート技術情報「JP296861,QChain.exeを使用して複数の修正プログラムを同時にインストールし,再起動を1回で済ませる方法」(編集部注:現在「複数の Windows Update または修正プログラムを同時にインストールし、再起動を 1 回で済ませる方法」という名称になっています。該当サイト) を参照してください。

瀧澤俊臣