從Windows 2000開始,微軟引入了“Windows文件保護”功能(Windows File Protection)。WFP在後台自動運行,可以防止重要的系統文件被替換,大大提高了系統的穩定性。但你知道怎樣更好地使用這個功能嗎?如何限制其緩沖區大小,並讓多個系統共享保護文件,從而節省硬盤空間?怎樣讓它每次啟動系統時直接掃描系統文件?掌握了這些,我們就可以……
一、文件保護機制原理
在計算機上安裝新軟件時,系統文件和設備驅動程序文件有時會被未經過簽名的或不兼容的版本覆蓋,導致系統不穩定。隨Windows XP一起提供的系統文件和設備驅動程序文件都有Microsoft數字簽名,這表明這些文件都是原始的未更改過的系統文件,或者它們已被Microsoft同意可以用於Windows。
WFP是怎樣發揮作用的呢?原來,當重要的系統文件(包括sys、dll、ocx、ttf、fon、exe等類型)被替換或移動時,WFP會對新文件的數字簽名進行驗證,以確定新文件的版本是否為正確的Microsoft版本,如果文件版本不正確,Windows文件保護會自動調用DLLCache文件夾或Windows中存儲的備份文件替換該文件,如果Windows文件保護無法定位相應的文件,系統就會提示用戶輸入該位置或插入安裝光盤,如圖1。
二、系統文件檢查器
Windows的文件保護機制是自動進行的,事實上,我們完全可以借助於
系統文件檢查器(System File Checker,簡寫為SFC)對文件保護機制進行自行控制。在此,我們先介紹一下SFC,具體的實例會在下文中說明。
SFC對應的應用程序名為sfc.exe,你可以在\Windows\system32\下找到它的蹤影。使用它,一旦發現某個受保護的系統文件被替換或移動,SFC將從\Windows\System32\DLLCache\文件夾中自動恢復相應的文件(安裝了SP2的Windows XP,其DLLCache文件夾中有2169個重要文件,占用364.5MB之多)。
SFC有很多的參數,利用這些參數,可以更好地控制文件保護。
三、文件保護我做主
接下來,我們通過實例的形式來理解SFC的幾個主要非常有用的參數:
實例一:每次啟動都掃描
在默認設置下,Windows文件保護並非時時刻刻都對那些受保護的文件進行掃描,如果你使用的是公用計算機,那麼還是安全為好,在“開始→運行”對話框中鍵入“gpedit.msc”,打開“本地計算機策略→計算機配置→管理模板→系統”窗口,找到“Windows文件保護”組,在右側窗格中雙擊“設置Windows文件保護掃描”項,如圖2所示,將其設置為“已啟用”,並設置掃描頻率為“啟動期間掃描”,這樣只要Windows啟動就會掃描保護文件,這樣系統會穩定得多,但其缺點是啟動時間會適當拖長。
或者,也可以打開“注冊表編輯器”,找到[HKEY_LOCAL_MacHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]右側窗格中的SFCDisable值,其默認設置是0,即重新啟動後不掃描受保護的文件,我們可以將其設置為1,可以達到同樣的目的。
實例二:我的地盤我作主 缺省設置下,Widnows會將驗證過的文件版本存儲在DLLCache文件夾中,這個文件夾的默認大小是400MB,而Windows Server 2003則無此限制,也就是說允許使用最大空間,如果你的硬盤空間比較緊張,那麼不妨考慮適當限制一下。
仍舊打開“本地計算機策略→計算機配置→管理模板→系統”窗口,找到“Windows文件保護”組,在右側窗格中雙擊“限制Windows文件保護緩存大小”項,在圖3窗口中進行設置,注意最小值應當大於50MB,如果需要指明緩存大小不受限制,請選擇“4294967295”作為磁盤空間最大量。
或者,也可以打開“注冊表編輯器”,找到[HKEY_LOCAL_MacHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon]右側窗格中的SFCQuota值進行設置,其默認大小是0xFFFFFFFF(即4294967295,400MB)。
實例三:清空DLLCache文件夾 如果你的系統目前一切正常,沒有什麼問題,而由於某些原因需要騰出更多的可用空間,那麼可以在“開始→運行”對話框中鍵入“SFC /purgecache”命令清空Dllcache文件夾,注意/前有一個英文半角的空格字符,這樣將清空保存在DLLCache中的文件緩存。
不過這樣一來,一旦出現問題,我們將會看到如圖1所示的窗口,需要插入Windows安裝光盤,並從上面恢復相應的系統文件。
實例四:文件掃描也來計劃任務 常規上,我們要麼手工執行SFC,要麼將之設置為每次啟動系統時執行,事實上這兩種方式都未免太呆板了些,為什麼不為文件掃描量身訂做一個計劃呢?
首先,我們需要將上圖2中“設置Windows文件保護掃描”項中設置為“已禁用”,然後在“控制面板”中打開任務計劃窗口,雙擊“添加任務計劃”,定位至\Windows\system32\sfc.exe,同時選擇“每周”,然後可以選擇起始時間和具體的日期,接下來設置用戶名和密碼。
右擊剛剛創建的計劃任務,打開屬性窗口,如圖4所示,在“運行”框中添加一個空格和/scannow參數,表示立即掃描所有受保護的系統文件,以後一到指定的時間,就會自動執行文件掃描操作了。
實例五:文件保護也玩系統共享 默認情況下,Windows會從
\WINDOWS\SYSTEM32\DLLCACHE中讀取保護文件,事實上,我們可以打開“注冊表編輯器”,定位到[HKEY_LOCAL_MacHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon]下,找到SFCDllCacheDir鍵值,將它指到一個更大的分區(如d:\dllcache),或者一個網絡共享文件夾中(如\\server\share\dllcache),然後將\WINDOWS\SYSTEM32\DLLCACHE下的所有文件(夾)移動到上述文件夾中,這樣Windows將會從這些文件夾中恢復保護文件。
小提示 ★此技巧僅適用於Windows 2000,並不適合於Windows XP。
★如果你公司有多台機器,可以將dllcache文件夾放到共享文件夾中,這樣可以省下硬盤空間。如果有不同版本的Windows,則需要指定不同的文件夾,如\\server\share\en\dllcache、\\server\share\chs\dllcache等。
實例六:讓安裝盤進駐硬盤 如果經常遇到如圖1所示的提示插入Windows安裝光盤的事情,總是相當麻煩的 。不過,我們只要先在非系統分區上(如D:\)建立一個文件夾,如WININS,再把Windows 2000/XP的安裝光盤上的所有文件拷貝到這個文件夾下。接著,安裝TweakUI,然後打開“控制面板”,雙擊“用戶接口自定義”圖標,單擊“我的電腦”標簽,在“特殊文件夾”選項組中“文件夾名稱”旁邊下拉列表框,從中選擇“安裝路徑”項目,並單擊“改變位置”按鈕,從打開的“浏覽文件夾”窗口中選中我們拷貝安裝光盤的路徑即可,如D:\WININS(如圖5)。
小提示
★現在硬盤非常大,建議你把Office安裝程序從光盤上拷貝到硬盤上再安裝,這樣添加或刪除Office組件時將不再需要插入安裝光盤。
實例七:安裝光盤也來共享 如果你在公司的局域網中工作,那可以打開“注冊表編輯器”,定位到
[HKEY_LOCAL_MacHINE\Software\Microsoft\Windows\CurrentVersion\Setup]下找到SourcePath項,雙擊之,將它修改為網絡共享文件夾,如\\server\share\chs\winxp,然後將Windows XP安裝光盤上的所有文件拷貝到\\server\share\chs\winxp下,以後需要Windows安裝文件時,就會自動從該文件夾下拷貝文件而不會提示插入安裝光盤。這樣,同事們可以省下足夠的本地硬盤空間,而“共享”一個安裝文件夾。