Applies ToWindows Update Microsoft Update

概要

この資料では、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 製品の更新プログラムは、単独でも、複数を組み合わせても (Service Pack が適用されているかどうかにかかわらず) Windows にインストールすることができます。注: この資料に記載されている手順は、インストール プログラムとして Hotfix.exe や Update.exe を使用していない製品の更新プログラムに対しては使用できません。たとえば、Windows NT 4.0、Windows 2000、および Windows XP 用の Internet Explorer の更新プログラムでは Update.exe ではなく、INF ベースのインストールが使用されています。したがって、Windows NT 4.0、Windows 2000、Windows XP のいずれかで Microsoft Internet Explorer の更新プログラムをインストールする場合、この資料に記載されている手順を使用して複数の更新プログラムを 1 回の再起動のみでインストールすることはできません。Windows Server 2003 用の Internet Explorer の更新プログラムでは、インストール プログラムとして Update.exe が使用されているため、この資料の手順を使用してインストールすることができます。上記のトピックの関連情報については、以下のマイクロソフト Web サイトを参照してください。Windows 2000

Microsoft Windows 2000 修正プログラム インストールと導入ガイドWindows XP

Microsoft Windows XP Service Pack 2 用更新プログラムのインストールと展開ガイドWindows Server 2003 および Windows XP Professional x64 Edition

Microsoft Windows Server 2003 および Windows XP 64-Bit Edition Version 2003 の更新プログラムのインストールと展開ガイドWindows Server 2003 Service Pack 1

Microsoft Windows Server 2003 Service Pack 1 更新プログラムのインストールと展開

詳細

Windows 製品の更新プログラム (重要な更新プログラム、セキュリティ更新プログラム、修正プログラムなど) はシステム ファイルを 1 つ以上含んだ実行可能ファイル (.exe) です。このシステム ファイルを Windows に適用することで特定の問題を修正できます。Microsoft Product Support Services では、特定の問題により深刻な影響を受けるユーザーに対して、修正プログラムを配布しています。重要な更新プログラムとセキュリティ更新プログラムは、マイクロソフトがすべてのお客様に推奨する更新プログラムです。重要な更新プログラムとセキュリティ更新プログラムは、Windows Update Web サイト、Microsoft Update Web サイト、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 Quiet モードを使用します (ユーザー入力を必要としません)。 /m 無人セットアップ モードを使用します (Windows 2000 の場合)。 /u 無人セットアップ モードを使用します (Windows XP の場合)。 /l インストール済みの修正プログラムを一覧表示します。 次のコード サンプルは、製品の更新を複数インストールし、コンピューターの再起動後にファイルが適切に置き換えられているようにするバッチ ファイルです。

@echo offsetlocalset 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 は、2001 年 5 月 18 日以降にリリースされた、Update.exe を使用する Windows XP x64 Edition、Windows Server 2003、Windows XP、および Windows 2000 の製品の更新プログラムすべてに組み込まれています。ただし、2002 年 12 月より前にリリースされた製品の更新プログラムには問題があり、特定の状況ではコンピューターに適切なバイナリがインストールされないことがあります。2003 年 3 月、マイクロソフトはこの問題を解決するために、更新版の QChain.exe をリリースしました。 この問題および更新された QChain.exe ツールの入手方法の詳細を参照するには、以下のサポート技術情報番号をクリックしてください。

複数の修正プログラムをまとめて適用するときに正しいファイルがインストールされない

Windows NT 4.0 のすべての更新プログラムまたは 2002 年 12 月より前に作成された Windows XP および Windows 2000 の更新プログラム

注: 製品の更新プログラムの作成日を判断するには、更新プログラム パッケージのインストール プログラム Update.exe または Hotfix.exe の更新日時を確認してください。マイクロソフトでは、QChain.exe というコマンド ライン ツールを提供しています。システム管理者は QChain.exe を使用して、更新プログラムをまとめて適用できます。更新プログラムをまとめて適用すると、複数の更新プログラムを 1 回の再起動のみでインストールすることができます。このツールを使用しない場合、それぞれの更新プログラムをインストールするたびにコンピューターを再起動する必要があります。QChain.exe ツールには次のような長所があります。

  • 更新プログラムをインストールするたびにコンピューターを再起動する必要がないため、サーバーの稼働時間が増加します。

  • 1 台のコンピューターに複数の更新プログラムをインストールするのにかかる時間を短縮できます。

  • Windows 2000 および Windows NT 4.0 の両方で機能します。

注: QChain.exe は、2001 年 5 月 18 日以降にリリースされた Windows XP および Windows 2000 のすべての更新プログラムに組み込まれています。ただし、2002 年 12 月より前にリリースされた更新プログラムには問題があり、特定の状況ではコンピューターに適切なバイナリがインストールされないことがあります。2003 年 3 月、マイクロソフトはこの問題を解決するために、更新版の QChain.exe をリリースしました。 この問題および更新された QChain.exe ツールの入手方法の詳細を参照するには、以下のサポート技術情報番号をクリックしてください。

複数の修正プログラムをまとめて適用するときに正しいファイルがインストールされない

QChain.exe を使用せずに複数の更新をまとめてインストールする場合の問題点

更新プログラムをインストールするときにロックされているファイルや使用中のファイルがあると、そのファイルは Pending File Rename キューに入れられ、コンピューターの再起動後に置き換えられます。以下のような場合には問題が発生します。

  • 更新プログラム A のインストール後に再起動を行わず、更新プログラム B を続けてインストールします。

  • 両方のパッケージに、バージョンが異なるファイル X が含まれています。パッケージ A のファイル X は Version 3、パッケージ B のファイル X は Version 2 で、コンピューター上のファイル X は Version 1 です。

  • パッケージ A のインストール時に、パッケージ A のファイル X が Pending File Rename キューに挿入されます。

  • パッケージ B のインストール時に、パッケージ B のファイル X が Pending File Rename キューに挿入されます。

  • コンピューターの再起動時に、最後にインストールされたパッケージ B のファイル X がインストールされます (最後に Pending File Rename キューに挿入されたファイルが使用されるため)。この場合、本来インストールされる必要のある Version 3 ではなく、Version 2 がインストールされます。

あらかじめまとめた更新プログラムを再起動せずにインストールした場合

このような状況が発生することはほとんどありませんが、これまでにインストールしたすべての修正プログラムについて、正しくインストールされていることを確認することをお勧めします。この確認を行うには Qfecheck.exe ツールを使用します。 Qfecheck.exe の詳細を参照するには、以下のサポート技術情報番号をクリックしてください。

Qfecheck.exe で Windows 2000 および Windows XP にインストールされた修正プログラムを検証する QChain.exe を実行するとレジストリ内の Pending File Rename Operations キーが削除され、コンピューターの再起動後、最新版のファイルのみが確実にインストールされます。

複数の更新プログラムを 1 回の再起動のみでインストールする方法

  1. 更新プログラムのインストーラーによってインストール後に再起動が行われないように、-z スイッチを指定してインストーラーを実行します。インストール中にプロンプトやメッセージが表示されないようにするには、QUIET モードを指定するための -m スイッチも追加します。 更新プログラムのインストーラーのプログラムは、次のいずれかです。

    • 自己解凍形式のパッケージ プログラム ファイル (たとえば、Qnnnnnn_w2k_spx_x86_en.exe)

    • Hotfix.exe (パッケージからすべてのファイルを抽出している場合)

  2. すべての修正プログラムをインストールした後に、QChain.exe を実行します。

  3. コンピューターを再起動します。

バッチ ファイルを作成してこの作業を実行することもできます。以下はこの方法を示したバッチ ファイルのサンプルです。

@echo offsetlocalset PATHTOFIXES=%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 月、マイクロソフトはこの問題を解決するために、更新版の QChain.exe をリリースしました。 この問題および更新された QChain.exe ツールの入手方法の詳細を参照するには、以下のサポート技術情報番号をクリックしてください。

複数の修正プログラムをまとめて適用するときに正しいファイルがインストールされない

QChain.exe のコマンドの構文

qchain [ログ ファイル名] オプションの [logfilename] パラメーターを指定すると、Pending File Rename Operations キーの、インストール前とインストール後のスナップショットを含むファイルが作成されます。

QChain.exe の出力サンプル

---- Old Information In The Registry ------Source:C:\WINNT\inf\acpi.infVersion: 5.0.2183.1Destination:d:\ntsust\testregchech\1394.infVersion: 5.0.2183.1Source:C:\WINNT\inf\adm_mult.infVersion: 5.0.2184.1Destination:d:\ntsust\testregchech\1394.infVersion: 5.0.2183.1Source:C:\WINNT\inf\banshee.infVersion: 5.0.2080.1Destination:d:\ntsust\testregchech\1394.infVersion: 5.0.2183.1---- New Information In The Registry ------Source:C:\WINNT\inf\adm_mult.infVersion: 5.0.2184.1Destination:d:\ntsust\testregchech\1394.infVersion: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 レジストリ キーに記載されているバイナリは起動時にメモリに読み込まれるため、更新プログラムのインストーラーではコンピューターが再起動される前に対象のバイナリを修正済みのバイナリに置き換える必要があります。したがって、更新プログラムのインストーラーによって、再起動時にバイナリを置き換えるための Pending File Rename Operation が作成されることはありません。代わりに、現在のバイナリを一時的な場所に移動し、修正後のバイナリを現在のバイナリがあった場所に配置してから、コンピューターの再起動時に現在のバイナリを削除するための Pending File Rename Operation を作成します。 QChain は、バイナリの置き換え処理を実行する Pending File Rename Operation に対してのみ有効です。QChain では、バイナリの削除処理を実行する Pending File Rename Operation については何も実行されません。 すべての Windows NT 4.0 の更新プログラムと Windows 2000 SP2 より前のすべての更新プログラムでは、GetFileVersionInfo を使用してファイルのバージョンが識別されます。Windows NT 4.0 の更新プログラムまたは SP2 以前の Windows 2000 の更新プログラムを複数インストールし、これらの更新プログラムに重複する KnownDLLs が含まれている場合、QChain を使用してこれらの更新プログラムをまとめてインストールしても、確実に最新版の更新プログラムがインストールされるとは限りません。 GetFileVersionInfo が使用される場合に QChain でシステムに正しいバイナリがインストールされない理由を、次のシナリオで示します。

  • 更新プログラム パッケージ A をインストールしてから、コンピューターを再起動せずに続けて更新プログラム パッケージ B をインストールします。

  • KnownDLLs の一覧に含まれる Kernel32.dll ファイルが両方のパッケージに存在し、パッケージ A には Kernel32.dll の Version 3、パッケージ B には Version 2 が含まれ、コンピューターにはこのファイルの Version 1 がインストールされているとします。

  • パッケージ A のインストール時には、コンピューターに Kernel32.dll の Version 1 がインストールされていることが GetFileVersionInfo により報告されます。パッケージ A には Version 3 が含まれているため、ファイルの置き換えが必要であることが更新プログラムのインストーラーによって認識されます。

    • コンピューター上にある Kernel32.dll Version 1 は、更新プログラムのインストーラーにより一時的な場所に移動されます。また、コンピューターを次に再起動したときに Kernel32.dll ファイルを一時的な場所から削除するための Pending File Rename Operation が作成されます。

    • パッケージ A の Kernel32.dll Version 3 がコンピューターにコピーされます。

  • パッケージ B をインストールするときにも、GetFileVersionInfo によってコンピューターにインストールされているのが Kernel32.dll Version 1 であると報告されます。これは、GetFileVersionInfo では、メモリに読み込まれている Kernel32.dll からバージョン情報が読み取られるためです。パッケージ B のファイルは Version 2 であるため、修正プログラムでファイルを置き換える必要があると認識されます。

    • 更新プログラムのインストーラーは、この時点でコンピューターに存在している Kernel32.dll (パッケージ A の Kernel32.dll Version 3) を一時的な場所に移動します。また、次にコンピューターを再起動したときに一時的な場所の Kernel32.dll (Version 3) を削除するための Pending File Rename Operation が作成されます。

    • パッケージ B の Kernel32.dll Version 2 がコンピューターにコピーされます。

  • QChain を実行しても、ファイル置き換えのための Pending File Rename Operations は存在しないため、QChain では何も実行されません。

  • パッケージ B が最後にインストールされているため、コンピューターの適切な場所にはパッケージ B の Kernel32.dll Version 2 が格納されています。そのため、コンピューターを再起動すると、メモリには Version 2 が読み込まれます。Pending File Rename Operations によって、元の Kernel32.dll Version 1 とパッケージ A の Kernel32.dll Version 3 の両方が削除されます。その結果、この時点でコンピューター上にある Kernel32.dll は Version 3 ではなく、Version 2 です。

Windows 2000 SP2 以降の修正プログラムでは、GetFileVersionInfo はメモリに読み込まれた KnownDLLs に対して使用されません。その代わり、対象となる場所に実際に存在するファイルが更新プログラムのインストーラーによりマップされ、そのマップされたファイルに対して GetFileVersionInfo が呼び出されます。したがって、Windows 2000 SP2 以降の更新プログラムでは QChain.exe を使用して更新プログラムをまとめて適用でき、更新プログラムのインストール順序に関係なく、確実に最新版のファイルをインストールすることができます。 Windows 2000 SP2 以降の更新プログラムを使用して上記の状況を再現した場合、パッケージ B の修正プログラムはパッケージ A の Kernel32.dll をマップし、パッケージ B 自体に含まれている Kernel32.dll Version 2 より後のバージョンである Version 3 がインストールされていることが認識されます。このため、システムにインストールされている Kernel32.dll が置き換えられることはありません。この結果、コンピューターの再起動後には、パッケージ A の Kernel32.dll Version 3 が使用されます。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。