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