WinXP提示正常運行Windows所需的文件已被替換成無法識別版本怎么辦?( 三 )


SFCDisabled
這個注冊表鍵控制SFC是激活的還是無效的 。實際上你只需通過改變DWORD的值,就可以得到四個不同的選項 。缺省的DWORD值是0 。這個設置激活SFC 。通常你不需要改變這個值 。然而,你可以在0到4之間修改這個值使得激活SFC但不讓它彈出 。
如果將內核調試器掛起,你最好關閉SFC 。如果正在使用一個內核調試器,你可以將注冊表鍵的DWORD值修改為1,這會關閉SFC并且會在以后的每次啟動時都提示你是否再次激活SFC 。
你也可以通過將DWORD值設為2來關閉SFC 。這個選項只是在下次啟動時關閉SFC 。沒有再激活SFC的選項,因為SFC將在這之后啟動時自動激活 。
SFCScan
在這之前,我解釋了SFC的SCANONCE,SCANBOOT,和REVERT選項 。只要你使用這些選項,實際上SFC是在修改SFCScan注冊表鍵 。你可以通過改變它的DWORD賦值來修改這個鍵 。默認的值是0 。這個值的意思是不需要在啟動時掃描受保護文件 。這個設置相當于運行SFC /REVERT命令 。改變DWORD值為1,意思是在每次啟動時都掃描受保護文件 。設置SFCScan的值為1相當于運行SFC /SCANBOOT命令 。
最后,設DWORD值為2就是告訴SFC在下次啟動時掃描受保護文件,但并非以后的所有啟動 。
這相當于運行SFC /SCANONCE命令 。
SFCQuota
SFCQuota注冊表鍵用來控制SFC文件緩存的大小 ?;蛟S你會記得,之前在我談到SFC /CACHESIZE=x 命令時,我提到關于文件緩存的默認大小,存在許多不一致的信息 。然而在我的系統上,注冊表鍵SFCQuota的DWORD值默認為0xffffffff 。根據微軟知識庫,這個值對應文件緩存的大小為300 MB 。同一篇知識庫的文章指出通過修改這個值為FFFFFFFF,你可以緩沖存儲所有受保護的系統文件 。
SFCDllCacheDir 在這之前,我解釋說Windows將DLLCACHE文件夾作為存儲系統文件備份的地方 。通常的,這個文件夾位于WINDOWSSYSTEM32目錄下 。不過通過修改SFCDllCacheDir注冊表鍵,你可以修改文件緩存的位置 。
【WinXP提示正常運行Windows所需的文件已被替換成無法識別版本怎么辦?】 文件緩存文件夾一般位于DLLCACHE目錄下,但通過修改這個注冊表鍵,你可以修改這個文件夾的位置 。唯一需要注意的一點是你必須指定一個已經存在于本地硬盤驅動器上的地址 。在Windows 2000里,你可以指定一個網絡共享作為DLLCACHE的路徑,但在Windows XP中沒有這個選項 。
SFCShowProgress
另一個與SFC相關的注冊表鍵是SFCShowProgress鍵 。這個注冊表鍵允許你設置它的DWORD值為0,或1 。缺省值是0,它將禁止顯示SFC的進程情況 。設值為1就可以讓SFC顯示進展情況 。
源文件地址
在這之前,我解釋了WFP和SFC是如何工作的,我指出在某些條件下你可能必須提供Windows安裝CD或者有效源文件的拷貝 。然而通過修改注冊表,向Windows指明一個源文件目錄是完全可能的,而無需Windows再向你詢問這些文件 。
這個注冊表鍵在注冊表的另一部分 。你必須找到下面這個鍵: HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionSetup 一旦你找到了這個位置,通過使用一個驅動器符號或者路徑或者一個UNC,你可以指定Windows系統文件的位置 。
使用這個命令的前提是你必須將文件放在名為I386的目錄中 。例如,如果你的Windows系統文件位于一個名為C:I386的目錄中,那么你只需在注冊表中指定路徑為C:,因為Windows假定I386這個目錄是存在的 。同樣的,如果你打算使用一個UNC共享,I386文件夾必須存在于共享目錄下 。例如,如果你打算共享的目錄名為FILES,你需要將I386文件夾放在FILES目錄下 。然后你可以告訴Windows在\server_nameFILES目錄下尋找共享文件 。Windows將在\server_nameFILESI386目錄中尋找系統文件 。

推薦閱讀