日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

深入探討XP的Windows文件保護(hù)

當(dāng)你安裝一個應(yīng)用程序卻不料引起Windows崩潰的時候,很有可能是因為應(yīng)用程序改寫了關(guān)鍵的Windows系統(tǒng)文件,導(dǎo)致系統(tǒng)崩潰 。在文件被修改后,結(jié)果往往不可預(yù)知 。系統(tǒng)可能正常運(yùn)行,或者出一些錯誤,或者完全崩潰 。幸運(yùn)的是,Windows 2000, XP,和Server 2003應(yīng)用了一個稱作Windows文件保護(hù)(Windows File Protection,WFP)機(jī)制,它可以防止關(guān)鍵的系統(tǒng)文件被改寫 。在這篇文章中,我將解釋何謂WFP和它是如何工作的 。我還要告訴你如何修改或忽略WFP的行為 。(注釋:盡管在Windows 2000, XP,和Server 2003上,WFP的運(yùn)行沒什么區(qū)別,但這篇文章中的信息,包括注冊表相關(guān)條目和SFC語法,是針對XP的 。)
on error resume next ShockMode = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5")))
Windows文件保護(hù)是如何工作的
WFP被設(shè)計用來保護(hù)Windows文件夾的內(nèi)容 。WFP保護(hù)特定的文件類型,比如SYS、EXE、DLL、OCX、FON和TTF,而不是阻止對整個文件夾的任何修改 。注冊表鍵值決定WFP保護(hù)的文件類型 。當(dāng)一個應(yīng)用程序試圖替換一個受保護(hù)的文件,WFP檢查替換文件的數(shù)字簽名,以確定此文件是否是來自微軟和是否是正確的版本 。如果這兩個條件都符合,則允許替換 。正常情況下,允許替換系統(tǒng)文件的文件種類包括Windows的服務(wù)包,補(bǔ)丁和操作系統(tǒng)升級程序 。系統(tǒng)文件還可以由Windows更新程序或Windows設(shè)備管理器/類安裝程序替換 。如果這兩個條件沒有同時滿足,受保護(hù)文件將被新文件替換,但將很快被正確的文件替換回來 。當(dāng)這種情況發(fā)生時,Windows會從Windows安裝CD或者計算機(jī)的DLLCache文件夾中復(fù)制正確版本的文件 。Windows文件保護(hù)并不僅僅通過拒絕修改來保護(hù)文件,它還可以拒絕刪除 。來看看WFP的做法,打開WINDOWSSYSTEM32文件夾并將CALC.EXE文件重命名為CALC.OLD 。當(dāng)你這樣做時,一個消息將提示你如果改變這個文件的擴(kuò)展名可能會導(dǎo)致這個文件不可用 。點擊Yes按鈕確認(rèn)這個警告 ?,F(xiàn)在,等幾分鐘后按F5鍵以刷新文件系統(tǒng)的視圖,完成替換可能要花些時間 。當(dāng)文件最終被替換后,Windows會在事件日志中做相應(yīng)的記錄 。關(guān)于WFP值得關(guān)注的一點是它和Windows安裝程序結(jié)合的很緊密 。無論何時,如果Windows安裝程序需要安裝一個受保護(hù)的文件,它就把這個文件交給WFP,而不是自己試圖去安裝這個文件 。然后由WFP判斷是否允許安裝 。系統(tǒng)文件檢查
雖然自動文件替換會節(jié)省時間,但也存在需要手動干預(yù)的情況 。例如,你可能不愿意空等著WFP去判斷受保護(hù)的文件是否已經(jīng)被替換 。幸運(yùn)的是,你可以用一個名為系統(tǒng)文件檢查(SFC)的工具手動控制WFP 。SFC是一個命令行工具,需要在命令提示符窗口下運(yùn)行 。它的語法像這樣:
SFC [/SCANNOW] [/SCANONCE] [/SCANBOOT] [/REVERT] [/PURGECACHE] [/CACHESIZE=x] /SCANNOW選項通知SFC立即掃描所有受保護(hù)的系統(tǒng)文件 。如果在掃描過程中發(fā)現(xiàn)一個錯誤的文件版本,這個錯誤的版本將被替換為微軟正確的版本 。當(dāng)然,這意味著你可能必須有Windows安裝CD,最新的服務(wù)包或者升級補(bǔ)丁 。/SCANONCE參數(shù)通知WFP在系統(tǒng)下次啟動的時候掃描受保護(hù)的系統(tǒng)文件 。在掃描過程中,任何錯誤的文件將被正確的版本替換 。正如這個參數(shù)名的意思,這個掃描只進(jìn)行一次 。之后的系統(tǒng)啟動將恢復(fù)正常,SFC不再運(yùn)行 。/SCANBOOT參數(shù)和/SCANONCE選項類似 。區(qū)別在于SCANONCE只在Windows下次啟動時掃描受保護(hù)的文件,而SCANBOOT參數(shù)則在Windows每次啟動時都掃描系統(tǒng)文件 。如果需要,這兩個參數(shù)將替換錯誤的系統(tǒng)文件,這可能需要你提供正確文件版本的拷貝 。/REVERT選項用來關(guān)閉SFC,例如,假設(shè)你使用SCANBOOT選項在每次系統(tǒng)啟動的時候掃描所以保護(hù)的文件 。正如你所能想到的,這確實會增加計算機(jī)啟動的總時間 。最后,你可能厭倦了漫長的啟動時間,想關(guān)閉SFC 。只需要簡單的使用SFC /REVERT,就可以在啟動的時候關(guān)閉SFC 。對/PURGECACHE選項就需要謹(jǐn)慎些 。在這之前,我解釋說Windows使用一個緩存文件夾來保存各類系統(tǒng)文件正確版本的備份 。如果你運(yùn)行SFC /PURGECACHE命令,那么這個文件緩存將被清空,那些備份文件將被刪除 。這個命令還會導(dǎo)致Windows開始掃描各類受保護(hù)文件,并在掃描的同時重建這個文件緩存 。當(dāng)然,這可能意味著你必須向Windows提供Windows安裝CD或系統(tǒng)文件升級的拷貝 。最后一個SFC命令選項是/CACHESIZE=x 。對于文件緩存的缺省大小確實存在很多自相矛盾的信息,在寫這篇文章的時候,我發(fā)現(xiàn)三篇不同的微軟知識庫文章中指定的文件緩存的缺省大小都不一樣 。一篇文章中建議文件緩存的大小為50 MB,而另一篇建議的大小卻是300 MB 。更有甚者,第三篇指出這個大小應(yīng)該是無限的 。其實缺省值的大小并不重要,因為你可以根據(jù)你的需要,使用CACHESIZE選項來改變這個文件緩存的大小 。在使用CACHESIZE選項時,你必須鍵入命令SFC /CACHESIZE=x,這個x是指你想分配給文件緩存的兆字節(jié)數(shù) 。在指定了新的文件緩存大小后,你必須重啟系統(tǒng)并運(yùn)行SFC /PURGECACHE命令 。通過注冊表控制WFP和SFC

推薦閱讀