您目前已離線,請等候您的網際網路重新連線

Windows 檔案保護功能說明

Windows XP 支援已結束

Microsoft 於 2014 年 4 月 8 日結束對 Windows XP 的支援。此變更已影響您的軟體更新和安全性選項。 瞭解這對您的意義為何且如何持續受保護。

Windows Server 2003 的支援已於 2015 年 7 月 14 日結束

Microsoft 已於 2015 年 7 月 14 日結束對 Windows Server 2003 的支援。此變更已影響您的軟體更新和安全性選項。 瞭解這對您的意義為何且如何持續受保護。

本文曾發行於 CHT222193
結論
本文將告訴您「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\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 知識庫」中的文件:
222473登錄 Windows 檔案保護的設定
如需 Windows XP 和 Windows Server 2003 中有關「系統檔案檢查程式」工具的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
310747Windows XP 與 Windows Server 2003 系統檔案檢查程式 (Sfc.exe) 說明
如需 Windows 2000 中有關「系統檔案檢查程式」工具的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
222471Windows 2000 系統檔案檢查程式 (Sfc.exe) 的說明
参考
如需有關 WFP 功能的詳細資訊,請造訪下列 Microsoft 網站: 如需有關 Windows Installer 和 WFP 的詳細資訊,請造訪下列 Microsoft 網站:
wfp sfp compatguidechange
內容

文章識別碼:222193 - 最後檢閱時間:12/03/2007 07:59:00 - 修訂: 11.4

Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Professional Edition, Microsoft Windows 2000 Datacenter Server, Microsoft Windows XP Professional x64 Edition, Microsoft Windows XP Home Edition (家用版), Microsoft Windows XP Professional, Microsoft Windows XP Media Center Edition, Microsoft Windows XP Tablet PC Edition, Microsoft Windows Server 2003, 64-Bit Datacenter Edition, Microsoft Windows Server 2003, Enterprise x64 Edition, Microsoft Windows Server 2003, Datacenter Edition (32-bit x86), Microsoft Windows Server 2003, Enterprise Edition (32-bit x86), Microsoft Windows Server 2003, Standard Edition (32-bit x86), Microsoft Windows Server 2003, Web Edition, Microsoft Windows Small Business Server 2003 Premium Edition, Microsoft Windows Small Business Server 2003 Standard Edition

  • kbinfo KB222193
意見反應
1; var Route = "76500"; var Ctrl = ""; document.write("