使用 Microsoft 登入
登入或建立帳戶。
您好:
選取其他帳戶。
您有多個帳戶
選擇您要用來登入的帳戶。

結論

本文將告訴您「Windows 檔案保護」(WFP,Windows File Protection) 功能。

其他相關資訊

Windows 檔案保護 (WFP) 可以防止程式取代重要 Windows 系統檔案。程式絕對不可以覆寫這些檔案,因為作業系統和其他程式會使用這些檔案。因此如果能保護這些檔案,將可避免程式和作業系統發生問題。

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 會還原原始的檔案。在安裝重要系統檔案時,Windows Installer 會遵守 WFP,並以安裝或取代受保護檔案的要求呼叫 WFP,而不是嘗試自行安裝或取代受保護的檔案。

WFP 功能的運作方式

WFP 功能會使用兩種機制來保護系統檔案。第一種機制是在背景中執行。在 WFP 收到受保護目錄中某個檔案的目錄變更通知之後,就會觸發這項保護。收到此通知後,WFP 會判斷變更了哪個檔案。如果此檔案是受保護的,WFP 會在類別目錄檔案中查詢檔案簽章,以判斷新檔案是否為正確版本。如果檔案並非正確版本,WFP 會將新檔案取代為快取資料夾中的檔案 (如果位於快取資料夾中) 或安裝來源中的檔案。WFP 會依此順序在下列位置中搜尋正確的檔案:

  1. 快取資料夾 (預設為 %systemroot%\system32\dllcache)。

  2. 網路安裝路徑 (如果系統以網路安裝)。

  3. Windows CD-ROM (如果系統是從 CD-ROM 安裝)。

如果 WFP 在快取資料夾中找到檔案,或者自動找到安裝來源,那麼 WFP 就會在不做出任何通知的情況下取代檔案。如果 WFP 無法自動在這些位置中找到檔案,您就會看到下列其中一則訊息,其中 file_name 是被取代的檔案名稱,而 product 是您所使用的 Windows 產品:

  • Windows 檔案保護
    正確執行 Windows 所需的檔案已被無法識別的版本所取代。Windows 必須還原這些檔案的原始版本,才能維持系統的穩定性。請立即插入 product CD-ROM。

  • Windows 檔案保護
    正確執行 Windows 所需的檔案已被無法識別的版本所取代。Windows 必須還原這些檔案的原始版本,才能維持系統的穩定性。無法取得從中複製這些檔案的網路位置 \\server\share。請與系統管理員連絡或立即插入 product CD-ROM。

注意 如果系統管理員未登入,WFP 將無法顯示這兩個對話方塊。在這種情況下,WFP 會在系統管理員登入之後顯示對話方塊。下列案例中,WFP 會等候系統管理員執行登入:

  • SFCShowProgress 登錄項目遺失或設為 1,而且伺服器設定為每次啟動電腦即執行掃描。在此情況中,WFP 會等候主控台登入。因此,RPC 伺服器會等到掃描完成後才啟動。此時電腦沒有任何保護。

    注意 您仍然可以對應網路磁碟、使用系統檔案及使用終端機服務登入伺服器。WFP 不將這些作業視為主控台登入,並會一直等候。

  • WFP 必須從網路共用還原檔案。如果 Dllcache 資料中沒有此檔案,或檔案損毀,即可能發生這種狀況。在此狀況下,WFP 可能沒有正確的憑證,無法從網路安裝媒體存取共用。

WFP 功能所提供的第二種保護機制是「系統檔案檢查程式」(Sfc.exe) 工具。在 GUI 模式安裝結束時,「系統檔案檢查程式」工具會掃描所有受保護的檔案,以確定使用自動安裝模式所安裝的程式並未修改這些檔案。同時,「系統檔案檢查程式」工具也會檢查用以追蹤正確檔案版本的所有類別目錄檔案。如果這些類別目錄檔案中有任何檔案遺失或損壞,WFP 會將受影響的類別目錄檔案重新命名,並從快取資料夾中擷取該檔案的快取版本。如果快取資料夾中找不到該類別目錄檔案的快取複本,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 時設定)。

依照預設,所有系統檔案都會快取在快取資料夾中,而快取記憶體的預設大小為 400 MB。基於磁碟空間的考量,您無法在快取資料夾中維護所有系統檔案的快取版本。如果要變更快取記憶體的大小,請變更下列登錄機碼中 SFCQuota 值的設定:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon WFP 會將已驗證的檔案版本儲存在硬碟的 Dllcache 資料夾中。快取檔案的數目取決於 SFCQuota 值的設定 (預設大小為 0xFFFFFFFF,也就是 400 MB)。系統管理員可以視情況變更 SFCQuota 值的設定。請注意,如果您將 SFCQuota 值設定為 0xFFFFFFFF,WFP 功能會快取所有受保護的系統檔案 (約 2,700 個檔案)。

在兩種情況下,不論 SFCQuota 值為何,快取資料夾皆無法包含所有受保護檔案的複本:

  1. 磁碟空間不足。

    在 Windows XP 中,當硬碟可用空間少於 (600 MB + 分頁檔案最大大小) 時,WFP 即會停止填入 Dllcache 資料夾。
    在 Windows 2000 中,當硬碟可用空間少於 600 MB 時,WFP 將停止填入 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 無法找到安裝來源,就會提示系統管理員插入適當的媒體,以取代檔案或快取檔案的版本。

下列登錄機碼中的 SFCDllCacheDir 值 (REG_EXPAND_SZ) 會指定 Dllcache 資料夾的位置。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\WinlogonSFCDllCacheDir 值得預設值資料為 %SystemRoot%\System32SFCDllCacheDir 值可以是本機路徑。依照預設,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因此,如果 SfcScanSFCQuotaSFCDllCacheDir 等值出現在 HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Windows File Protection 子機碼中,則這些值的優先順序將大於 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon 子機碼中的相同值。

如需有關 WFP 功能的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

登錄 Windows 檔案保護的設定

如需 Windows XP 和 Windows Server 2003 中有關「系統檔案檢查程式」工具的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

Windows XP 與 Windows Server 2003 系統檔案檢查程式 (Sfc.exe) 說明

如需 Windows 2000 中有關「系統檔案檢查程式」工具的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

Windows 2000 系統檔案檢查程式 (Sfc.exe) 的說明

如需有關 WFP 功能的詳細資訊,請造訪下列 Microsoft 網站:

如需有關 Windows Installer 和 WFP 的詳細資訊,請造訪下列 Microsoft 網站:

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?
按下 [提交] 後,您的意見反應將用來改善 Microsoft 產品與服務。 您的 IT 管理員將能夠收集這些資料。 隱私權聲明。

感謝您的意見反應!

×