概要
この記事では、Hotfix.exe (Microsoft Windows NT 4.0) または Update.exe (Microsoft Windows 2000、Microsoft Windows XP、Microsoft Windows Server 2003) を使用する複数の Windows 製品更新プログラム (重要な更新プログラム、セキュリティ パッチ、修正プログラムなど) を 1 回だけ再起動してインストールする方法について説明します。 この記事は、管理者と IT プロフェッショナルを対象としています。 Hotfix.exe または Update.exe を使用する Windows 製品更新プログラムは、単独でインストールすることも、Windows と組み合わせてインストールすることもできます (Service Pack の有無にかかわらず)。
注 この記事で説明する手順は、インストール プログラムとして Hotfix.exe または Update.exe を使用しない製品更新プログラムでは機能しません。 たとえば、Windows NT 4.0、Windows 2000、および Windows XP のインターネット エクスプローラー更新プログラムでは、Update.exe ではなく INF ベースのインストールが使用されます。 その結果、この手順を使用して、Windows NT 4.0、Windows 2000、または Windows XP で 1 回だけ再起動するだけで、複数の Microsoft Internet エクスプローラー更新プログラムをインストールすることはできません。 Windows Server 2003 のインターネット エクスプローラー更新プログラムはインストール プログラムとして Update.exe を使用するため、この手順を使用してインストールできます。
これらのトピックの詳細については、次の Microsoft Web サイトを参照してください。
Windows 2000
Microsoft Windows 2000 修正プログラムのインストールと展開ガイド
http://technet.microsoft.com/en-us/library/cc750542.aspx Windows XP
Microsoft Windows XP Service Pack 2 のUpdatesのインストールと展開に関するガイド
http://technet.microsoft.com/en-us/library/bb457071.aspx Windows Server 2003 および Windows XP Professional x64 Edition
Microsoft Windows Server 2003 および Windows XP 64 ビット エディション バージョン 2003 のUpdatesのインストールと展開に関するガイド
http://technet.microsoft.com/en-us/library/cc700814.aspx Windows Server 2003 Service Pack 1
Microsoft Windows Server 2003 Service Pack 1 Updatesのインストールと展開
http://technet2.microsoft.com/windowsserver/en/library/0e02a953-aca7-4dad-b3e2-c94ea72bbc3d1033.mspx
追加情報
Windows 製品の更新プログラム (重要な更新プログラム、セキュリティパッチ、修正プログラムなど) は、特定の問題を修正するために Windows に適用できる 1 つ以上のシステム ファイルを含む実行可能ファイル (.exe) です。 Microsoft 製品サポート サービスは、特定の問題によって深刻な影響を受けるお客様に修正プログラムを配布します。 重要な更新プログラムとセキュリティ パッチは、Microsoft がすべてのお客様に推奨する更新プログラムです。 重要な更新プログラムとセキュリティ パッチは、Windows Update Web サイト、Microsoft Update Web サイト、Microsoft ダウンロード センター、またはその他の Microsoft Web サイトから入手できます。
Windows XP x64 Edition の更新プログラムとWindows Server 2003 の更新プログラム、または 2002 年 12 月以降に作成された Windows XP および Windows 2000 更新プログラム
注 更新プログラムがいつ作成されたかを確認するには、更新プログラム パッケージの Update.exe またはインストール プログラム Hotfix.exe 変更日を表示します。
1 台のコンピューターに Windows 製品更新プログラムをインストールするには、更新するコンピューターで製品更新プログラムを実行します。 各インストールの間にコンピューターを再起動せずに複数の製品更新プログラムをインストールするには、/z スイッチを使用します。
Update.exe プログラムのコマンド ライン オプション
次の表は、Update.exe プログラムでサポートされているコマンド ライン オプション (またはスイッチ) を示しています。スイッチの説明
/f シャットダウン時に他のプログラムを強制的に閉じます。 /n 修正プログラムを削除するためのファイルをバックアップしません。 /z インストール後にコンピューターを再起動しません。
が完了しました。 /q 静音モードを使用します。ユーザー操作は必要ありません。 /m 無人セットアップ モード (Windows 2000) を使用します。 /u 無人セットアップ モード (Windows XP) を使用します。 /l インストールされている修正プログラムを一覧表示します。 次のコード サンプルは、複数の製品更新プログラムをインストールし、コンピューターの再起動後に正しいファイルが置き換えられるバッチ ファイルです。
@echo off
setlocal
set PATHTOFIXES=E:\hotfix
%PATHTOFIXES%\Q123456_w2k_sp4_x86.exe /Z /M
%PATHTOFIXES%\Q123321_w2k_sp4_x86.exe /Z /M
%PATHTOFIXES%\Q123789_w2k_sp4_x86.exe /Z /M
注 QChain.exe 機能は、Update.exe を使用し、2001 年 5 月 18 日以降にリリースされたすべての Windows XP x64 エディション、Windows Server 2003、Windows XP、および Windows 2000 製品更新プログラムに含まれています。 ただし、2002 年 12 月より前にリリースされた製品更新プログラムに問題が存在し、状況によってはコンピューターに間違ったバイナリが適用される可能性があります。 2003 年 3 月、Microsoft は、この問題を解決するために更新されたバージョンの QChain.exe をリリースしました。
この問題の詳細については、または更新された Qchain.exe ツールを入手するには、次の記事番号をクリックして、Microsoft サポート技術情報の記事を表示してください。
815062 複数の修正プログラムをチェーンするときに正しいファイルがインストールされない
2002 年 12 月より前に作成されたすべての Windows NT 4.0 更新プログラムまたは Windows XP および Windows 2000 更新プログラム
注: 製品の更新がいつ作成されたかを判断するには、更新プログラム パッケージの Update.exe またはインストール プログラム Hotfix.exe 変更日をチェックします。
Microsoft は、QChain.exe という名前のコマンド ライン ツールをリリースしました。 QChain.exe を使用すると、システム管理者は更新プログラムを連鎖させることができます。 更新プログラムをチェーンする場合、各インストールの間にコンピューターを再起動せずに複数の更新プログラムをインストールします。 このツールがないと、サポートされる唯一の方法は、各更新プログラムのインストール後にコンピューターを再起動することです。 QChain.exe ツールには、次の利点があります。
- 更新プログラムのインストールごとにコンピューターが再起動されないため、サーバーのアップタイムが向上します。
- これにより、1 台のコンピューターに複数の更新プログラムを迅速にインストールできます。
- Windows 2000 と Windows NT 4.0 の両方で動作します。
QChain.exe 機能は、2001 年 5 月 18 日以降にリリースされたすべての Windows XP および Windows 2000 更新プログラムに含まれていますが、2002 年 12 月より前にリリースされた更新プログラムに問題が存在し、状況によっては間違ったバイナリがコンピューターに配置される可能性があります。 2003 年 3 月、Microsoft は、この問題を解決するために更新されたバージョンの QChain.exe をリリースしました。
この問題の詳細、または更新された Qchain.exe ツールを入手するには、次の記事番号をクリックして、Microsoft サポート技術情報の記事を表示してください。
815062 複数の修正プログラムをチェーンするときに正しいファイルがインストールされない
QChain.exe を使用せずに更新プログラムのインストールをチェーンすることは安全ではありません
更新プログラムをインストールするときに、ファイルがロックされているか使用中の場合、ファイルを置き換えることはできません。 その結果、ファイルは保留中のファイル名変更キューに配置され、コンピューターの再起動後に置き換えられます。 この問題は、次のシナリオで発生します。
- インストール間でコンピューターを再起動せずに、更新プログラム A と B をインストールします。
- どちらのパッケージにもファイル X が含まれています。パッケージ A のファイル X はバージョン 3 です。パッケージ B のファイル X はバージョン 2 です。 コンピューター上のファイル X のバージョンはバージョン 1 です。
- パッケージ A がインストールされると、そのバージョンのファイル X が [保留中のファイル名の変更] キューに配置されます。
- パッケージ B がインストールされると、そのバージョンのファイル X が保留中のファイル名変更キューに配置されます。
- コンピューターが再起動されると、パッケージ B が最後にインストールされたため、そのバージョンのファイル X がインストールされます ([保留中のファイル名の変更] キューでは、最後のファイルが使用されます)。 その結果、バージョン 3 ではなくバージョン 2 が予期したとおりにインストールされます。
以前にチェーンされた更新プログラムが再起動せずにインストールされている場合
このシナリオはまれですが、コンピューターにインストールされていると思われるすべての修正プログラムがあることを確認することをお勧めします。 これを確認するには、Qfecheck.exe ツールを使用します。
Qfecheck.exe の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
282784 Qfecheck.exe は、Windows 2000 および Windows XP 修正プログラムのインストールを確認します
QChain.exe レジストリの [保留中のファイル名の変更操作] キーをクリーンアップして、コンピューターの再起動後に最新バージョンのファイルのみがインストールされていることを確認します。
1 回の再起動のみで複数の更新プログラムをインストールするには
-z スイッチを使用して更新プログラム インストーラーを実行し、インストール後に再起動しないようにインストーラーに指示します。 インストール中にプロンプトまたはメッセージを表示しない場合は、-m スイッチ (サイレント モード用) を追加します。
更新プログラムインストーラーは、次のいずれかのプログラムです。
- 自己抽出パッケージ プログラム ファイル (例: Qnnnnnn_w2k_spx_x86_en.exe)。
- Hotfix.exe (パッケージからすべてのファイルを抽出した場合)。
すべての修正プログラムをインストールした後、QChain.exe を実行します。
コンピューターを再起動します。
これを行うバッチ ファイルを作成することもできます。 次のサンプル バッチ ファイルは、このメソッドを示しています。
@echo off
setlocal
set PATHTOFIXES=some path%PATHTOFIXES%\Q123456_w2k_sp2_x86.exe -z -m
%PATHTOFIXES%\Q123321_w2k_sp2_x86.exe -z -m
%PATHTOFIXES%\Q123789_w2k_sp2_x86.exe -z -m
%PATHTOFIXES%\qchain.exe
QChain.exe を取得する方法
QChain.exe 機能は、2001 年 5 月 18 日以降にリリースされたすべての Windows XP および Windows 2000 更新プログラムに含まれていますが、2002 年 12 月より前にリリースされた更新プログラムに問題が存在し、一部の状況で間違ったバイナリがコンピューターに配置される可能性があります。 2003 年 3 月、Microsoft は、この問題を解決するために更新されたバージョンの QChain.exe をリリースしました。
この問題の詳細、または更新された Qchain.exe ツールを入手するには、次の記事番号をクリックして、Microsoft サポート技術情報の記事を表示してください。
815062 複数の修正プログラムをチェーンするときに正しいファイルがインストールされない
QChain.exe コマンド構文
qchain [logfilename]
省略可能な [logfilename] パラメーターは、保留中のファイル名変更操作キーのスナップショットの前後に を持つファイルを作成します。
出力 QChain.exe 例
レジストリ ------で古い情報を----する
Source:C:\WINNT\inf\acpi.inf
バージョン: 5.0.2183.1
Destination:d:\ntsust\testregchech\1394.inf
バージョン: 5.0.2183.1
Source:C:\WINNT\inf\adm_mult.inf
バージョン: 5.0.2184.1
Destination:d:\ntsust\testregchech\1394.inf
バージョン: 5.0.2183.1
Source:C:\WINNT\inf\banshee.inf
バージョン: 5.0.2080.1
Destination:d:\ntsust\testregchech\1394.inf
バージョン: 5.0.2183.1
レジストリ ------に新しい情報を----する
Source:C:\WINNT\inf\adm_mult.inf
バージョン: 5.0.2184.1
Destination:d:\ntsust\testregchech\1394.inf
バージョン: 5.0.2183.1
QChain.exe の制限事項
QChain は、ほとんどの Windows NT 4.0 および Windows 2000 更新プログラムで動作しますが、QChain.exe は、次のレジストリ キーに記載されているバイナリ ファイルを含む更新プログラムでは動作しない可能性があります。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\KnownDLLs このレジストリ キーに記載されているバイナリ ファイル (バイナリ) は、起動時にメモリに読み込まれます。 更新インストーラーがこのリストのバイナリで GetFileVersionInfo 関数を呼び出すと、更新インストーラーは、ターゲットの場所に実際に存在するバイナリではなく、既に読み込まれているバイナリを参照します。
KnownDLLs レジストリ キーに記載されているバイナリは起動時にメモリに読み込まれるため、コンピューターを再起動する前に、ターゲット バイナリを固定バイナリに置き換える必要があります。 そのため、更新プログラムインストーラーでは、再起動時にバイナリを置き換えるための保留中のファイル名変更操作は作成されません。 代わりに、更新プログラムは現在のバイナリを一時的な場所に移動し、現在のバイナリの場所に固定バイナリを配置し、コンピューターの再起動時に現在のバイナリを削除する保留中のファイル名の変更操作を作成します。
QChain は、バイナリ置換操作を実行する保留中のファイル名変更操作にのみ影響します。 削除操作を実行する保留中のファイル名変更操作では何も実行されません。
SP2 より前のすべてのWindows NT 4.0 更新プログラムとすべての Windows 2000 更新プログラムは、GetFileVersionInfo を使用してファイルのバージョンを識別します。 4.0 更新プログラムまたは SP2 Windows 2000 以前の更新プログラムWindows NT 2 つ以上をインストールし、更新プログラムに重複する KnownDL が含まれている場合、これらの更新プログラムのインストールをチェーンするために QChain を使用しても、最新バージョンの修正プログラムがインストールされているかどうかは確認されません。
次のシナリオは、QChain が正しいバイナリをシステムに配置しない理由を示しています。
更新プログラム パッケージ A と B をインストールし、インストールの間は再起動しません。
どちらのパッケージにも Kernel32.dll が含まれています。これは KnownDL リスト内のファイルです。 パッケージ A にはバージョン 3 Kernel32.dll 含まれており、パッケージ B にはバージョン 2 Kernel32.dll 含まれており、コンピューターにはバージョン 1 Kernel32.dll インストールされています。
パッケージ A がインストールされると、GetFileVersionInfo は、コンピューターにバージョン 1 Kernel32.dll があることを報告します。 パッケージ A にはバージョン 3 が含まれているため、更新プログラム インストーラーによってファイルの置換の必要性が識別されます。
- 更新プログラムインストーラーは、コンピューター上の Kernel32.dll バージョン 1 を一時的な場所に移動し、次にコンピューターが再起動された時点で Kernel32.dll ファイルを一時的な場所から削除する保留中のファイル名変更操作を作成します。
- パッケージ A の Kernel32.dll バージョン 3 がコンピューターにコピーされます。
パッケージ B がインストールされると、GetFileVersionInfo は、Kernel32.dll バージョン 1 がコンピューターにインストールされていることを報告します。これは、GetFileVersionInfo がメモリに読み込まれた Kernel32.dll からバージョン情報を読み取るためです。 パッケージ B にはバージョン 2 があり、修正プログラムはファイルの交換の必要性を識別します。
更新プログラムインストーラーは、コンピューター (パッケージ A の Kernel32.dll バージョン 3) にある Kernel32.dll を一時的な場所に移動し、次にコンピューターが再起動されるときに一時場所から (バージョン 3) Kernel32.dll を削除する保留中のファイル名変更操作を作成します。
パッケージ B のバージョン 2 Kernel32.dll がコンピューターにコピーされます。
QChain は実行されますが、ファイル置換の保留中のファイル名変更操作がないため、QChain は何も行いません。
パッケージ B が最近インストールされたため、パッケージ B Kernel32.dll バージョン 2 はコンピューター上の正しい場所にあります。 そのため、コンピューターの再起動時にメモリに読み込まれます。 保留中のファイル名変更操作では、元のバージョン Kernel32.dll バージョン 1 とパッケージ A の Kernel32.dll バージョン 3 の両方が削除されます。 その結果、コンピューターはバージョン 3 ではなくバージョン 2 Kernel32.dll になりました。
SP2 Windows 2000 以降の修正プログラムがあり、メモリに読み込まれる KnownDL で GetFileVersionInfo が使用されなくなりました。 代わりに、更新インストーラーは、ターゲットの場所に実際に存在するファイルをマップし、マップされたファイルで GetFileVersionInfo を呼び出します。 そのため、QChain.exe を使用して、SP2 以降の Windows 2000 更新プログラムを連結できます。 そうすると、更新プログラムのインストール順序に関係なく、最新バージョンのファイルがインストールされます。
前のシナリオを再生し、SP2 Windows 2000 以降の更新プログラムを使用する場合、パッケージ B の修正プログラムはパッケージ A の Kernel32.dll をマップし、バージョン 3 を認識します。 バージョン 3 は、パッケージ B 独自の Kernel32.dll バージョン 2 より後です。 したがって、パッケージ B はシステム上の Kernel32.dll を置き換えません。パッケージ A の Kernel32.dll バージョン 3 は、コンピューターの再起動後にコンピューターが正しく使用するバージョンです。