Windows ファイル保護( WFP ) は、Windows 2000およびWindows XP時代のMicrosoft Windowsオペレーティングシステムに含まれるサブシステムで、プログラムが重要な Windowsシステム ファイルを置き換えることを防ぐことを目的としています。[ 1 ] [ 2 ] [ 3 ]コア システム ファイルを保護すると、プログラムやオペレーティングシステムで発生するDLL 地獄などの問題が軽減されます。Windows 2000、 Windows XP、およびWindows Server 2003では、WFP はWindows ファイル保護という名前で含まれています。Windows Me では、システム ファイル保護( SFP )として含まれています。Windows Server 2008およびWindows Vistaでは、 Windows リソース保護に名前が変更されました。[ 4 ]
Windows ファイル保護が有効になっている場合、上書きを防ぐためのファイルロックがないシステム ファイルを置き換えたり削除したりすると、 Windows は即座にサイレントに元のファイルのコピーを復元します。元のバージョンのファイルは、これらのファイルのバックアップ コピーを含むキャッシュ フォルダーから復元されます。Windows NTファミリーは、キャッシュ フォルダー%SystemRoot%\System32\Dllcacheを使用します。Windows Me は、圧縮されたキャビネット セットアップ ファイル一式をキャッシュし、%windir%\Options\Installフォルダーに保存します。
WFP は、オペレーティングシステムがインストールするすべてのファイル ( DLL、EXE、SYS、OCXなど) を保護し、削除や古いバージョンによる置き換えを防ぎます。これらのファイルのデジタル署名は、コード署名と%SystemRoot%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE } フォルダーに保存されている署名カタログファイルを使用して検証されます。パッケージインストーラ(Update.exe) やWindows インストーラ(Msiexec.exe)などの特定のオペレーティングシステムコンポーネントのみがこれらのファイルを置き換えることができます。これらのファイルを置き換えるために他の方法で行われた変更は元に戻され、ファイルはキャッシュからサイレントに復元されます。Windows ファイル保護がキャッシュされたフォルダーでファイルを自動的に見つけられない場合は、ネットワーク パスを検索するか、適切なバージョンのファイルを復元するために Windows インストール ディスクをユーザーに要求します。
WFPはシステムファイルチェッカー(sfc.exe )ユーティリティと統合されています。
Windows Vista以降のWindowsシステムにはWindowsファイル保護機能は含まれていませんが、ACLを使用してファイルを保護するWindowsリソース保護機能は含まれています。Windowsリソース保護機能は、オペレーティングシステムファイルに加え、コアレジストリキーと値を保護し、システム構成に潜在的に有害な変更を防止することを目的としています。
Windowsのファイル保護でACLを使用しないのは設計上の選択でした。これはNTFS以外のシステムでも動作を可能にするだけでなく、いわゆる「問題のある」インストーラーがファイルアクセスエラーで完全に失敗するのを防ぐためでもありました。