概要

この資料では、Windows ファイル保護 (WFP) 機能について説明します。

詳細

Windows ファイル保護 (WFP) は、プログラムによって重要な Windows システム ファイルが置き換えられないように保護します。これらのファイルはオペレーティング システムや他のプログラムによって使用されるため、プログラムで上書きされないようにする必要があります。これらのファイルを保護することによって、プログラムとオペレーティング システムの問題を防ぎます。



WFP は Windows の一部としてインストールされる重要なシステム ファイル (.dll、.exe、.ocx、.sys 拡張子の付いたファイルや特定の True Type フォントなど) を保護します。WFP では、コード署名により生成されるファイル署名およびカタログ ファイルを使用して、保護されたシステム ファイルが正しいマイクロソフトのバージョンであるかどうかを確認します。保護されたシステム ファイルの置き換えは、次のメカニズムを使用した場合にのみサポートされます。

  • Update.exe を使用した Windows Service Pack のインストール

  • Hotfix.exe または Update.exe を使用した修正プログラムのインストール

  • Winnt32.exe を使用したオペレーティング システムのアップグレード

  • Windows Update

上記以外の方法を使用して、保護されたファイルがプログラムによって置き換えられると、WFP により元のファイルが復元されます。Windows インストーラでは、WFP に従って、重要なシステム ファイルをインストールする際に、保護されたファイル自体のインストールや置き換えは行わず、WFP を呼び出して保護されたファイルのインストールまたは置き換えを要求します。

WFP 機能のしくみ


WFP 機能では、2 つのメカニズムを使用して、システム ファイルの保護が実現されます。最初のメカニズムはバックグランドで動作します。この保護は、保護されたディレクトリ内のファイルに対するディレクトリ変更通知が WFP で受信された後で実行されます。WFP はこの通知を受信後、変更されたファイルを特定します。そのファイルが保護されている場合、WFP ではカタログ ファイル内のファイル署名を検索し、新しいファイルが正しいバージョンかどうかが判定されます。ファイルが正しいバージョンでない場合、WFP により、新しいファイルがキャッシュ フォルダのファイル (キャッシュ フォルダに存在する場合) またはインストール元のファイルで置き換えられます。WFP では次の場所を記載されている順に検索して、正しいファイルを見つけます。

  1. キャッシュ フォルダ (デフォルトでは %systemroot%\system32\dllcache)

  2. ネットワーク インストール パス (システムがネットワーク インストールを使用してインストールされた場合)

  3. Windows CD-ROM (システムが CD-ROM からインストールされた場合)

WFP がキャッシュ フォルダ内でファイルを見つけた場合、またはインストール元が自動的に見つかった場合、WFP はメッセージを表示せずにファイルを置き換えます。WFP がこれらのどの場所でもファイルを自動的に見つけることができなかった場合、次のいずれかのメッセージが表示されます。product は使用中の Windows 製品です。

  • Windows ファイル保護 (WFP)

    Windows を正しく動作させるために必要なファイルが、認識できないバージョンのファイルに置き換えられています。システムの安定を維持するために、これらのファイルを元のバージョンに復元する必要があります。

    product を挿入してください。

  • Windows ファイル保護 (WFP)

    Windows を正しく動作させるために必要なファイルが、認識できないバージョンのファイルに置き換えられています。システムの安定を維持するために、これらのファイルを元のバージョンに復元する必要があります。

    ファイルのコピー元のネットワークの場所 \\server\share を利用できません。システム管理者に問い合わせるか、または product を挿入してください。

注 : 管理者がログオンしていない場合、WFP ではいずれのダイアログ ボックスも表示できません。この場合、管理者がログオンした後、WFP によりダイアログ ボックスが表示されます。管理者がログオンするまで WFP が待機するのは以下のような場合です。

  • SFCShowProgress レジストリ エントリが存在しないか、1 に設定されていて、コンピュータの起動のたびにスキャンするようにサーバーが設定されている場合。この場合、WFP ではコンソールからログオンされるまで待機します。したがって、スキャンが実行されるまでは、RPC サーバーは起動しません。この間、コンピュータはまったく保護されません。



    注 : ネットワーク ドライブの割り当て、システム ファイルの使用、ターミナル サービスを使用したサーバーへのログオンは可能です。WFP では、これらの操作がコンソール ログオンと見なされないため、無期限に待機し続けます。

  • WFP で、ネットワーク共有からファイルを復元する必要がある場合。この状況は、このファイルが Dllcache フォルダ内に存在しない場合や、破損している場合に発生することがあります。この場合、WFP には、ネットワーク ベースのインストール メディアからネットワーク共有にアクセスするための適切な資格情報がない可能性があります。

WFP 機能によって提供される 2 番目の保護メカニズムはシステム ファイル チェッカー ツール (Sfc.exe) です。GUI モード セットアップの終了時に、システム ファイル チェッカー ツールによって、保護されたすべてのファイルがスキャンされ、無人インストールを使用してインストールされたプログラムによってそれらのファイルが変更されていないことが確認されます。さらに、システム ファイル チェッカー ツールでは、正しいファイル バージョンの追跡に使用されるすべてのカタログ ファイルもチェックされます。カタログ ファイルが失われているか破損している場合、WFP ではそのカタログ ファイルの名前を変更して、キャッシュ フォルダからそのファイルのキャッシュされたバージョンを取得します。カタログ ファイルのキャッシュされたコピーがキャッシュ フォルダにない場合、WFP 機能によりカタログ ファイルの新しいコピーを取得するために、該当するメディアが要求されます。



管理者は、システム ファイル チェッカー ツールによって、保護されたすべてのファイルのスキャンおよびバージョンの確認を行うことができます。さらに、システム ファイル チェッカー ツールはキャッシュ フォルダ (デフォルトでは %SystemRoot%\System32\Dllcache) のチェックと再作成を行います。キャッシュ フォルダが破損したり、使用できなくなったりした場合、コマンド プロンプトで sfc /scanonce コマンドまたは sfc /scanboot コマンドを使用して、フォルダの内容を修復できます。



次のレジストリ キーの SfcScan 値に使用できる設定には、次の 3 種類があります。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon SfcScan 値に使用できる設定は、以下のとおりです。

  • 0x0= 再起動後に保護されたファイルをスキャンしない (デフォルト値)

  • 0x1= 再起動のたびにすべての保護されたファイルをスキャンする (sfc /scanboot を実行した場合に設定)

  • 0x2= 再起動後 1 回のみすべての保護されたファイルをスキャンする (sfc /scanonce を実行した場合に設定)

デフォルトでは、すべてのシステム ファイルがキャッシュ フォルダにキャッシュされます。キャッシュのデフォルトのサイズは 400 MB です。ディスク容量を考慮すると、すべてのシステム ファイルのキャッシュされたバージョンをキャッシュ フォルダに保存しておくことは望ましくない場合があります。キャッシュのサイズを変更するには、次のレジストリ キーの SFCQuota 値の設定を変更します。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\WinlogonWFP により、検証済みのファイルのバージョンがハード ディスク上の Dllcache フォルダに保存されます。キャッシュされるファイルの数は、SFCQuota 値の設定によって決まります (デフォルトのサイズは 0xFFFFFFFF、つまり 400 MB です)。管理者は必要に応じて SFCQuota 値の設定を増減できます。SFCQuota 値を 0xFFFFFFFF に設定した場合、WFP 機能によりすべての保護されたシステム ファイル (約 2,700 ファイル) がキャッシュされます。



SFCQuota 値にかかわらず、すべての保護されたファイルのコピーがキャッシュ フォルダに保存されない状況は 2 とおりあります。

  1. ディスク領域の不足


    Windows XP では、WFP はハード ディスク上の空き領域が 600 MB + ページ ファイルの最大サイズ未満の場合に Dllcache フォルダへのファイルの保存を停止します。


    Windows 2000 では、WFP はハード ディスク上の空き領域が 600 MB 未満の場合に Dllcache フォルダへのファイルの保存を停止します。

  2. ネットワーク インストール


    ネットワーク経由で Windows 2000 または Windows XP をインストールした場合、i386\lang ディレクトリ内のファイルは Dllcache フォルダに保存されません。

さらに、Driver.cab ファイル内のすべてのドライバが保護されますが、それらは Dllcache フォルダに保存されません。WFP はユーザーにインストール元メディアを要求せずに、直接 Driver.cab ファイルからこれらのファイルを復元できます。ただし、sfc /scannow コマンドを実行すると、Driver.cab ファイルのファイルが Dllcache フォルダに保存されます。



WFP がファイルの変更を検出し、影響を受けるファイルがキャッシュ フォルダ内にない場合、WFP はオペレーティング システムによって現在使用されている変更されたファイルのバージョンを調べます。現在使用中のファイルが正しいバージョンである場合、WFP はそのバージョンのファイルをキャッシュ フォルダにコピーします。現在使用中のファイルが正しいバージョンでない場合、またはファイルがキャッシュ フォルダにキャッシュされていない場合、WFP はインストール元を検索します。WFP がインストール元を見つけられない場合、そのファイルまたはキャッシュされたファイルのバージョンを置き換えるために、管理者に対して該当のメディアを挿入するように要求します。



Dllcache フォルダの場所は、次のレジストリ キーの SFCDllCacheDir 値 (REG_EXPAND_SZ) によって指定されます。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\WinlogonSFCDllCacheDir 値のデフォルトの値のデータは %SystemRoot%\System32 です。SFCDllCacheDir 値にはローカル パスも指定できます。デフォルトでは、SFCDllCacheDir 値は HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon レジストリ キーにありません。キャッシュの場所を変更するには、この値を追加する必要があります。



Windows の起動時に、WFP により、WFP 設定が同期 (コピー) されます。コピー元は、次のレジストリ キーです。

HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Windows File Protectionコピー先は、次のレジストリ キーです。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogonしたがって、SfcScan 値、SFCQuota 値、または SFCDllCacheDir 値が HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Windows File Protection サブキーに存在する場合、これらの値は HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon サブキーに存在する同じ値より優先されます。

WFP 機能の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。


222473 [NT] システム ファイル保護のためのレジストリ設定

Windows XP と Windows Server 2003 のシステム ファイル チェッカー ツールの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。


310747 Windows XP および Windows Server 2003 のシステム ファイル チェッカー (Sfc.exe) について
Windows 2000 のシステム ファイル チェッカー ツールの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。


222471 Windows 2000 システム ファイル チェッカー (Sfc.exe) について

WFP 機能の関連情報については、次のマイクロソフト Web サイトを参照してください。

http://msdn2.microsoft.com/en-us/library/aa382551.aspxWindows インストーラおよび WFP の関連情報については、次のマイクロソフト Web サイトを参照してください。

http://msdn2.microsoft.com/en-us/library/aa372820.aspx

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

翻訳品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?

フィードバックをお送りいただきありがとうございます!

×