Windows インストーラーと Windows リソース保護の使用

Windows インストーラーは、Windows Server 2008 以降および Windows Vista 以降に重要なシステム ファイル、フォルダー、レジストリ情報をインストールする場合、Windows リソース保護 (WRP) に従います。

Windows Server 2008 および Windows Vista の WRP は、Windows Server 2003、Windows XP、および Windows 2000 の Windows ファイル保護 (WFP) に代わるものです。 Windows インストーラーの開発者は、Windows Server 2008 以降および Windows Vista 以降におけるインストーラーによる保護されたリソースの処理方法に関する次の変更に注意する必要があります。

  • Windows Server 2008 以降または Windows Vista 以降で実行している場合、Windows インストーラーは WRP で保護されているファイルのインストールをスキップし、インストーラーはログ ファイルに警告を入力し、エラーなしで残りのインストールを続行します。 Windows Server 2003、Windows XP、および Windows 2000 では、Windows インストーラーが WFP で保護されたファイルを検出すると、インストーラーは WFP にファイルのインストールを要求します。
  • Windows Server 2008 以降または Windows Vista 以降の WRP では、ファイルに加えてレジストリ キーを保護できます。 Windows インストーラーが WRP で保護されたレジストリ キーを検出した場合、インストーラーはそのレジストリ キーのインストールをスキップし、インストーラーはログ ファイルに警告を入力し、エラーなしで残りのインストールを続行します。
  • Windows インストーラー コンポーネントに WRP で保護されているファイルまたはレジストリ キーが含まれている場合、このリソースをコンポーネントの KeyPath として使用する必要があることに注意してください。 この場合、Windows インストーラーはコンポーネントをインストール、更新、または削除しません。 保護されたリソースをインストール パッケージに含めてはいけません。 代わりに、Windows リソース保護サポートされているリソース置換メカニズムを使用する必要があります。

WRP の詳細については、「Windows リソース保護」、および Microsoft Technet で提供されている情報を参照してください。

Windows Server 2003 および Windows XP/2000 の WFP

Windows インストーラーは、Windows Server 2003、Windows XP、および Windows 2000 に重要なシステム ファイルをインストールする場合、Windows ファイル保護 (WFP) に従います。 保護されたシステム ファイルがアプリケーションの無人インストールによって変更された場合、WFP で、そのファイルが検証済みのファイル バージョンに復元されます。

Windows インストーラーで、保護されたファイルのインストールや置換が試みられることはありません。 InstallFiles アクション、または InstallFiles の前にスケジュールされたその他のアクションが Windows Server 2003、Windows XP、または Windows 2000 上で保護されたファイルをインストールしようとすると、インストーラーは WFP を呼び出して、保護されたファイルのインストールまたは置換を要求します。 インストーラーは、InstallFiles アクションを実行した直後に WFP にファイルのインストールを要求します。 WFP は、ユーザーのシステム上のファイルを、保護されたファイルのキャッシュされたバージョンにインストールまたは置き換えます。 これは、キャッシュからインストールされたファイルのバージョンがアプリケーションに必要なバージョンであることを保証するものではないことに注意してください。 WFP がファイルをインストールすると、インストーラーは、このバージョンがパッケージ内のバージョンと一致するかどうかを判断します。 パッケージ内のファイルのバージョンがインストールされているバージョンより大きい場合、インストーラーはシステムを更新できないこと、およびアプリケーションのためにオペレーティング システムの更新が必要になる可能性があることをユーザーに通知します。

InstallFiles の後にシーケンスされたアクションが、システムにまだインストールされていない保護されたファイルのインストールまたは置換を試みる場合、インストーラーは WFP を呼び出してファイルをインストールできません。 この場合、インストーラーはシステムを更新できないこと、およびアプリケーションのためにオペレーティング システムの更新が必要になる可能性があることをユーザーに通知します。

インストーラーは、ファイルを削除するときに WFP を確認します。保護されたシステム ファイルの削除を試みることはありません。

WFP によって保護されるコンポーネント キー ファイル

Windows インストーラー コンポーネントに WFP ファイルが含まれている場合は、このファイルをコンポーネントのキー パスとして指定する必要があることに注意してください。

インストーラーは、Windows Server 2003、Windows XP、または Windows 2000 にコンポーネントのキー ファイルをインストールしようとする際、最初に WFP を呼び出して、キー ファイルが保護されているかどうかを判断します。 コンポーネントのキー ファイルが WFP で保護されていて、そのキー ファイルが既にインストールされている場合、パッケージ内のキー ファイルのバージョンがインストールされているバージョンより大きい場合にのみ、インストーラーによってコンポーネントが更新されます。 インストール パッケージでコンポーネントのインストールが指定されていて、コンポーネントのキー ファイルが現在インストールされていない場合、キー ファイルが保護されているかどうかに関係なく、インストーラーによってコンポーネントがインストールされます。 WFP で保護されたキー ファイルを持つコンポーネントは、一度インストールされると永続的にインストールされます。インストーラーがこのコンポーネントを削除または置き換えることはありません。

WFP によるアセンブリのインストール

アセンブリの WFP は、システム ファイルの WFP とは異なります。

WFP は、保護されたシステム ファイルの置換の試行を検出することで、Windows Server 2003、Windows XP、および Windows 2000 システム ファイルを保護します。 この保護は、保護されたディレクトリ内のファイルのディレクトリ変更通知を WFP が受け取った後にトリガーされます。 WFP は、この通知を受け取ると、どのファイルが変更されたかを判断します。 ファイルが保護されている場合、WFP は静的カタログ ファイル内のファイル署名を検索して、新しいファイルが正しいバージョンであるかどうかを判断します。 ファイルのバージョンが正しくない場合、システムはファイルをキャッシュまたは配布メディアの正しいバージョンに置き換えます。

これに対し、アセンブリの WFP は動的です。 WFP は、ファイルが共有サイド バイ サイド アセンブリ キャッシュに追加されると、それらに拡張されます。 アセンブリが破損した場合、WFP はインストーラーにファイルの置換を要求します。 Windows インストーラーは、ソース パッケージにアクセスできるかどうかに応じて、ファイルを置換できる場合とできない場合があります。 ソース パッケージにアクセスできない場合、WFP はファイルを復元できないことを示すダイアログ ボックスを表示します。

%windir%\winsxs にインストールされているアンマネージド共有サイド バイ サイド アセンブリは、WFP で保護されることに注意してください。 アプリケーション ディレクトリにインストールされているアンマネージド プライベート アセンブリは、WFP で保護されません。 アプリケーション ディレクトリまたは %windir%\assembly\gac にインストールされているマネージド グローバル アセンブリは、WFP で保護されません。

Windows リソース保護