結論
本文將告訴您「Windows 檔案保護」(WFP,Windows File Protection) 功能。
其他相關資訊
Windows 檔案保護 (WFP) 可以防止程式取代重要 Windows 系統檔案。程式絕對不可以覆寫這些檔案,因為作業系統和其他程式會使用這些檔案。因此如果能保護這些檔案,將可避免程式和作業系統發生問題。
WFP 會保護安裝 Windows 的重要系統檔案 (例如,具有 .dll、.exe、.ocx 和 .sys 副檔名的檔案和某些 True Type 字型)。WFP 會使用程式碼簽名所產生的檔案簽章和類別目錄檔案,來驗證受保護的系統檔案是否為正確的 Microsoft 版本。受保護之系統檔案的取代作業僅由下列機制所支援:
「系統檔案檢查程式」工具讓系統管理員能夠掃描所有受保護的檔案,以檢查其版本。「系統檔案檢查程式」工具也會檢查並重新填入快取資料夾 (依預設為 %SystemRoot%\System32\Dllcache)。如果快取資料夾損壞或無法使用,您可以在命令提示字元使用 sfc /scanonce 命令或 sfc /scanboot 命令來修復資料夾的內容。
下列登錄機碼中的 SfcScan 值具有三種可用設定:
在兩種情況下,不論 SFCQuota 值為何,快取資料夾皆無法包含所有受保護檔案的複本:
當 WFP 偵測到檔案變更,而受影響的檔案不在快取資料夾中時,WFP 會檢查作業系統目前使用之已變動檔案的版本。如果所使用的檔案是正確版本,WFP 會將此檔案的版本複製到快取資料夾中。如果所使用的檔案不是正確版本,或者檔案尚未快取到快取資料夾時,WFP 會嘗試找出安裝來源。如果 WFP 無法找到安裝來源,就會提示系統管理員插入適當的媒體,以取代檔案或快取檔案的版本。
下列登錄機碼中的 SFCDllCacheDir 值 (REG_EXPAND_SZ) 會指定 Dllcache 資料夾的位置。
當 Windows 啟動時,WFP 會從下列登錄機碼同步處理 (複製) WFP 設定
WFP 會保護安裝 Windows 的重要系統檔案 (例如,具有 .dll、.exe、.ocx 和 .sys 副檔名的檔案和某些 True Type 字型)。WFP 會使用程式碼簽名所產生的檔案簽章和類別目錄檔案,來驗證受保護的系統檔案是否為正確的 Microsoft 版本。受保護之系統檔案的取代作業僅由下列機制所支援:
- 使用 Update.exe 的 Windows Service Pack 安裝
- 使用 Hotfix.exe 或 Update.exe 所安裝的 Hotfix
- 使用 Winnt32.exe 的作業系統升級
- Windows Update
WFP 功能的運作方式
WFP 功能會使用兩種機制來保護系統檔案。第一種機制是在背景中執行。在 WFP 收到受保護目錄中某個檔案的目錄變更通知之後,就會觸發這項保護。收到此通知後,WFP 會判斷變更了哪個檔案。如果此檔案是受保護的,WFP 會在類別目錄檔案中查詢檔案簽章,以判斷新檔案是否為正確版本。如果檔案並非正確版本,WFP 會將新檔案取代為快取資料夾中的檔案 (如果位於快取資料夾中) 或安裝來源中的檔案。WFP 會依此順序在下列位置中搜尋正確的檔案:- 快取資料夾 (預設為 %systemroot%\system32\dllcache)。
- 網路安裝路徑 (如果系統以網路安裝)。
- Windows CD-ROM (如果系統是從 CD-ROM 安裝)。
- Windows 檔案保護
正確執行 Windows 所需的檔案已被無法識別的版本所取代。Windows 必須還原這些檔案的原始版本,才能維持系統的穩定性。請立即插入 product CD-ROM。 - Windows 檔案保護
正確執行 Windows 所需的檔案已被無法識別的版本所取代。Windows 必須還原這些檔案的原始版本,才能維持系統的穩定性。無法取得從中複製這些檔案的網路位置 \\server\share。請與系統管理員連絡或立即插入 product CD-ROM。
- SFCShowProgress 登錄項目遺失或設為 1,而且伺服器設定為每次啟動電腦即執行掃描。在此情況中,WFP 會等候主控台登入。因此,RPC 伺服器會等到掃描完成後才啟動。此時電腦沒有任何保護。
注意 您仍然可以對應網路磁碟、使用系統檔案及使用終端機服務登入伺服器。WFP 不將這些作業視為主控台登入,並會一直等候。 - WFP 必須從網路共用還原檔案。如果 Dllcache 資料中沒有此檔案,或檔案損毀,即可能發生這種狀況。在此狀況下,WFP 可能沒有正確的憑證,無法從網路安裝媒體存取共用。
「系統檔案檢查程式」工具讓系統管理員能夠掃描所有受保護的檔案,以檢查其版本。「系統檔案檢查程式」工具也會檢查並重新填入快取資料夾 (依預設為 %SystemRoot%\System32\Dllcache)。如果快取資料夾損壞或無法使用,您可以在命令提示字元使用 sfc /scanonce 命令或 sfc /scanboot 命令來修復資料夾的內容。
下列登錄機碼中的 SfcScan 值具有三種可用設定:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
SfcScan 值的設定為:- 0x0 = 重新啟動後不掃描受保護的檔案。(預設值)
- 0x1 = 每次重新啟動後掃描所有受保護的檔案 (執行 sfc /scanboot 時設定)。
- 0x2 = 重新啟動後掃描一次所有受保護的檔案 (執行 sfc /scanonce 時設定)。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
WFP 會將已驗證的檔案版本儲存在硬碟的 Dllcache 資料夾中。快取檔案的數目取決於 SFCQuota 值的設定 (預設大小為 0xFFFFFFFF,也就是 400 MB)。系統管理員可以視情況變更 SFCQuota 值的設定。請注意,如果您將 SFCQuota 值設定為 0xFFFFFFFF,WFP 功能會快取所有受保護的系統檔案 (約 2,700 個檔案)。在兩種情況下,不論 SFCQuota 值為何,快取資料夾皆無法包含所有受保護檔案的複本:
- 磁碟空間不足。
在 Windows XP 中,當硬碟可用空間少於 (600 MB + 分頁檔案最大大小) 時,WFP 即會停止填入 Dllcache 資料夾。
在 Windows 2000 中,當硬碟可用空間少於 600 MB 時,WFP 將停止填入 Dllcache 資料夾。 - 網路安裝。
如果 Windows 2000 或 Windows XP 是經由網路所安裝,i386\lang 目錄中的檔案就不會存放在 Dllcache 資料夾中。
當 WFP 偵測到檔案變更,而受影響的檔案不在快取資料夾中時,WFP 會檢查作業系統目前使用之已變動檔案的版本。如果所使用的檔案是正確版本,WFP 會將此檔案的版本複製到快取資料夾中。如果所使用的檔案不是正確版本,或者檔案尚未快取到快取資料夾時,WFP 會嘗試找出安裝來源。如果 WFP 無法找到安裝來源,就會提示系統管理員插入適當的媒體,以取代檔案或快取檔案的版本。
下列登錄機碼中的 SFCDllCacheDir 值 (REG_EXPAND_SZ) 會指定 Dllcache 資料夾的位置。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
SFCDllCacheDir 值得預設值資料為 %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 知識庫」中的文件:
如需 Windows XP 和 Windows Server 2003 中有關「系統檔案檢查程式」工具的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
如需 Windows 2000 中有關「系統檔案檢查程式」工具的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
如需 Windows XP 和 Windows Server 2003 中有關「系統檔案檢查程式」工具的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
如需 Windows 2000 中有關「系統檔案檢查程式」工具的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
如需有關 WFP 功能的詳細資訊,請造訪下列 Microsoft 網站: 如需有關 Windows Installer 和 WFP 的詳細資訊,請造訪下列 Microsoft 網站: