複製鏈接
請複製以下鏈接發送給好友

windows文件保護

鎖定
Windows 文件保護 (WFP) 可防止程序替換重要的 Windows 系統文件。程序絕不能覆蓋這些文件,因為操作系統及其他程序都要使用它們。通過保護這些文件,可以防止程序和操作系統出現問題。
中文名
windows文件保護
外文名
WFP
功    能
防止程序替換重要系統文件
工作方式
後台運行

windows文件保護WFP 介紹

WFP 可保護作為 Windows 的一部分安裝的重要系統文件(例如,帶有 .dll、.exe、.ocx 和 .sys 擴展名的文件及某些 True Type 字體)。WFP是使用文件簽名代碼簽名所生成的編錄文件,來驗證受保護的系統文件是正確的 Microsoft 版本。僅支持通過下列機制替換受保護的系統文件
使用 Update.exe 安裝 Windows Service Pack
使用 Hotfix.exe 或 Update.exe 安裝修補程序
使用 Winnt32.exe 升級操作系統
Windows Update
如果程序使用其他方法替換受保護的文件,則 WFP 會還原原始文件。Windows 安裝程序在安裝重要系統文件時支持 WFP 功能,它使用請求來調用 WFP 以安裝或替換受保護的文件,而不是親自安裝或替換受保護的文件。

windows文件保護功能工作方式

WFP 功能使用兩種機制為系統文件提供保護。第一種機制在後台運行。在 WFP 收到受保護目錄中的文件的目錄更改通知後,就會觸發這種保護機制。WFP 收到這一通知後,就會確定更改了哪個文件。如果此文件是受保護的文件,WFP 將在編錄文件中查找文件簽名,以確定新文件的版本是否正確。如果此文件的版本不正確,WFP 將使用高速緩存文件夾(如果文件位於高速緩存文件夾中)或安裝源中的文件替換新文件。WFP 按下面的順序在下列位置搜索正確的文件:
高速緩存文件夾(默認位置是 %systemroot%\system32\dllcache)。
網絡安裝路徑(如果系統是通過網絡安裝的)。
Windows CD-ROM(如果系統是從 CD-ROM 安裝的)。
如果 WFP 在高速緩存文件夾中找到此文件,或者自動找到安裝源,WFP 就會替換文件而不給出提示。如果 WFP 在所有這些位置均無法自動找到此文件,將會出現以下消息之一。其中 file_name是被替換的文件的名稱,product是您所使用的 Windows 產品:Windows 文件保護
正常運行 Windows 所需的文件已被替換成無法識別的版本。要保持系統的穩定性,Windows 必須還原這些文件的原始版本。請現在插入 productCD-ROM。
Windows 文件保護
無法使用應該從中複製這些文件的網絡位置 \\server\share。請與系統管理員聯繫或現在插入 productCD-ROM。
注意:如果管理員沒有登錄,則 WFP 無法顯示上述任何一個對話框。在這種情況下,WFP 會在管理員登錄之後顯示對話框。在下列情況中,WFP 可能會等待管理員登錄:
SFCShowProgress 註冊表項丟失或設置為 1,且服務器設置為在計算機每次啓動時進行掃描。在這種情況下,WFP 會等待控制枱登錄。因此,在執行掃描前,RPC 服務器不會啓動。在此期間,計算機不具備保護功能。
注意:您仍可以映射網絡驅動器、使用系統文件以及使用終端服務登錄到服務器。WFP 不會將這些操作視為控制枱登錄,並且會無限期地等待。
WFP 必須從網絡共享還原文件。如果文件不在 Dllcache 文件夾中或已損壞,則可能發生此情況。在這種情況下,WFP 可能不具有從基於網絡的安裝媒體訪問共享所需的正確憑據。
WFP 功能提供的第二種保護機制是系統文件檢查器 (Sfc.exe) 工具。GUI 模式安裝結束時,系統文件檢查器工具對所有受保護的文件進行掃描,確保使用無人蔘與安裝過程安裝的程序沒有對它們進行修改。系統文件檢查器工具還對用來跟蹤正確文件版本的所有編錄文件進行檢查。如果任何編錄文件丟失或損壞,WFP 將重命名受影響的編錄文件,並在高速緩存文件夾中檢索該文件的高速緩存版本。如果高速緩存文件夾中沒有該編錄文件的高速緩存副本,則 WFP 功能請求相應的介質以檢索該編錄文件的新副本。
管理員可以使用系統文件檢查器工具來掃描所有受保護的文件,以驗證它們的版本。系統文件檢查器工具還可用於檢查並重新填充高速緩存文件夾(默認位置是 %SystemRoot%\System32\Dllcache)。如果高速緩存文件夾損壞或無法使用,您可以在命令提示符下使用 sfc /scanoncesfc /scanboot命令來修復此文件夾的內容。
下面的註冊表項中的SfcScan值有三種可能的設置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon
SfcScan
值的設置是:0x0
= 在重新啓動後不掃描受保護的文件。(默認值)0x1
= 在每次重新啓動後掃描所有受保護的文件(如果運行 sfc /scanboot,則設置此值)。0x2
= 在重新啓動後掃描一次所有受保護的文件(如果運行 sfc /scanonce,則設置此值)。默認情況下,將所有系統文件緩存高速緩存文件夾中,高速緩存的默認大小為 400 MB。考慮到磁盤空間有限,最好不要在高速緩存文件夾中保存所有系統文件的高速緩存版本。要更改高速緩存的大小,請在下面的註冊表項中更改 SFCQuota值的設置:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
WFP 將驗證過的文件版本存儲在硬盤上的 Dllcache 文件夾中。高速緩存文件的數量取決於 SFCQuota值的設置(默認大小是 0xFFFFFFFF 或 400 MB)。管理員可以根據需要來設置 SFCQuota值。注意,如果將 SFCQuota值設置為 0xFFFFFFFF,則 WFP 功能緩存所有受保護的系統文件(大約為 2700 個文件)。
在以下兩種情況下,不管將 SFCQuota 值設置為多少,高速緩存文件夾都不可能包含所有受保護文件的副本:磁盤空間不足。
在 Windows XP 下,當硬盤上的可用空間比 600 MB 與最大頁面文件大小之和少時,WFP 停止填充 Dllcache 文件夾。
在 Windows 2000 下,當硬盤上的可用空間少於 600 MB 時,WFP 停止填充 Dllcache 文件夾。
網絡安裝。
通過網絡安裝 Windows 2000 或 Windows XP 時,在 Dllcache 文件夾中不會填充 i386\lang 目錄文件。
此外,還會保護 Driver.cab 文件中的所有驅動程序,但是,不會將它們填充到 Dllcache 文件夾中。WFP 可直接從 Driver.cab 文件還原這些文件,而無須提示用户指定源介質。但是,如果運行 sfc /scannow命令,就會將 Driver.cab 文件中的這些文件填充到 Dllcache 文件夾中。
如果 WFP 檢測到發生了文件更改,並且受影響的文件不在高速緩存文件夾中,則 WFP 檢查操作系統正在使用的已更改文件的版本。如果目前正在使用的文件是正確版本,則 WFP 將此文件版本複製到高速緩存文件夾中。如果目前正在使用的文件不是正確版本,或者沒有在高速緩存文件夾中緩存此文件,則 WFP 試圖查找安裝源。如果 WFP 找不到安裝源,它將提示管理員插入相應的介質以替換文件或緩存的文件版本
以下註冊表項中的 SFCDllCacheDir值 (REG_EXPAND_SZ) 指定 Dllcache 文件夾的位置。HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon
SFCDllCacheDir值的默認值數據是 %SystemRoot%\System32。SFCDllCacheDir
值可以是本地路徑。默認情況下,HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon
註冊表項中未列出 SFCDllCacheDir值。要修改高速緩存位置,您必須添加該值。
在 Windows 啓動時,WFP 將註冊表項HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Windows File Protection
中的 WFP 設置同步(複製)到以下註冊表項:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
因此,如果 HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Windows File Protection
子項中包含 SfcScan、SFCQuota或 SFCDllCacheDir值,則這些值優先於HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon子項中的相同值。