微軟操作系統中的系統文件不管是操作系統安裝時的必需文件,而且還包括一些驅動程序。微軟操作系統對硬件的支持力度要比Linux等開源操作系統強的多。
眾所周知,微軟操作系統文件是經常被木馬、病毒等程序所關注的對象。有時候用戶也不會在不經意的情況下破壞系統文件。系統不穩定大部分情況下都是由於系統文件遭受到破壞所引起的。在Windows7中這個系統文件的穩定性有了不少的改善。
在談這個話題之前,首先系統管理員需要明白一點,就是微軟操作系統中的系統文件不管是操作系統安裝時的必需文件,而且還包括一些驅動程序。微軟操作系統對 硬件的支持力度要比Linux等開源操作系統強的多。在Windows7操作系統中,一進攻可以檢測大多數的硬件,並且在安裝過程中會自動查找並安裝相應 的驅動程序。這主要是因為微軟在一個新版本操作系統出來之前,都會對當前主流的硬件設備進行測試。如果測試通過的話會將這個硬件的驅動程序加入到操作系統 中。所以在Windows7系統安裝成果後不用手工安裝驅動程序就可以識別大部分的硬件。而這些驅動程序也就構成了微軟操作系統中的系統文件。以下對於系 統文件穩定性的一些保護措施,對於這些驅動程序文件同樣有效。
一、利用文件簽名來驗證系統文件是否被修改。
在Windows 7操 作系統中,所有的系統文件(包括微軟認可的驅動程序文件)都會帶有微軟的簽名。在這個簽名信息中包含了系統文件名、存儲路徑、文件創建的日期以及版本號等 信息。如果系統管理員在Windows7系統部署完畢後,收集相關的信息。然後當操作系統出現不穩定的情況,系統管理員懷疑是系統文件遭受破壞所引起的, 就可以將系統文件的簽名與原始簽名進行對比,就可以判斷系統文件是否在管理員不知情的情況下被更改了。從而可以采取相關的措施來修復系統文件來恢復操作系 統的穩定性。
在微軟操作系統中,現在不需要手工來收集這些信息。在系統中提供了一個圖形化文件簽名工具,可以幫助系統管理員來做這項工作。在命令行模式下,輸入sigverif命令就會簽名對話框。
這個文件簽名工具是微軟操作系統提供的一個基於圖形化管理的工具。當安裝了某個應用程序或者硬件設別時,如果系統管理員懷疑原始的、被保護的、經過數字簽 名的系統文件或者啟動程序被非法修改或者替換,則就可以利用這個工具來檢查是否有這種情況的存在。雖然這個工具在以前版本的操作系統中已經存在,但是以前 一直被大家所忽視。在Windows7中對這個工具做了不少的改善,特別是在性能上。經過筆者的測試,在Windows7操作系統中,這個工具的運行速度 要比以前版本的操作系統快好幾倍。另外這個工具在功能上也有所改進。如在以前的操作系統中只檢測系統文件,而不會檢測驅動程序。而現在的話,這個工具會同 時檢測系統文件以及驅動程序文件,以確保所有的文件都具有微軟的數字簽名。當工具檢測到沒有經過簽名或者不准確的文件版本時,就會將相關的信息文件名、修 改時間、版本號等內容告訴給管理員。也會在系統相關日志中保留這些信息,以便系統管理員後續查詢。
不過筆者使用後覺得還有一個不方便的地方,就是無法將這寫信息直接導入到文本文件或者直接進行復制。如現在這個工具查詢到某個文件有問題,如 tcpip.sys這個文件有問題。現在系統管理員可能需要在互聯網上查找這個文件的具體用途,以及以前是否有人也遇到過這種問題。但是讓筆者氣餒的是竟 然不能夠直接復制這個文件名字。現在筆者要向他人請教這個文件的用途時,不得不手工進行輸入,而不能夠通過復制粘貼來實現。筆者建議微軟的設計專家們,在 這方面可以更加人性化一點。最後能夠把這些信息在這個窗口中直接導出為文本文件或者可以直接進行復制粘貼操作。而不是要打開日志文件來進行這些行為。
另外需要注意的是,這個工具不會對有問題的文件盡心自我修復。所以運行這個工具並不要求有管理員的權限。也就是說,普通用戶也可以運行這個程序來檢查系統文件是否被受到惡意更改。
二、利用sfc命令自動修復有問題的系統文件。
如果通過以上的這個工具發現有問題的系統文件該如何處理呢?除了通過系統安裝盤來修復系統文件或者手工對文件進行修復外,在操作系統中還提供了另外一個有 用的工具,即sfc命令。這個命令的功能跟文件簽名認證工具的功能類似,會對系統文件以及驅動程序的簽名合法性進行驗證。不過兩個工具還是有很大的差異。
一是外觀上的差異。sfc是一個命令行下面的工具,即沒有圖形化的管理向導。而文件簽名驗證工具則是一個圖形化的管理工具。所以從方便性上來說,文件簽名 工具可能更容易上手。不過對於系統管理專家來說,圖形化界面與文本界面可能沒有本質上的差異。另外最重大的一個差異可能就是功能上的差異了。 Sfc命令不僅會檢查系統文件與驅動程序簽名的合法性,而且還會自動修復檢測到有問題的文件。其修復的方式就是將任何被檢測到的不正確的文件都被自動替換 為微軟版本的額外文件。由於在替換的過程中,不會對系統管理員有任何的提示,所以使用這個工具的時候會有一定的風險。為此筆者的建議是,系統管理員最好先 利用文件簽名工具來查詢一下到底存在哪些有問題的系統文件或者驅動程序文件。如果確認這些文件被微軟版本的文件所代替沒有問題的情況下,在使用sfc這個 命令行工具來自動修復有問題的文件。
如果在操作系統中,系統管理員部署了一些沒有經過簽名的系統文件。如果系統管理員認為這些文件是必需的,那麼最好不要冒然使用這個工具。如可以在使用這個 工具之前,先將那些合法的但是沒有簽名的文件復制出來,然後在使用這個工具修復其他有問題的系統文件或者驅動程序。等到修復完成之後,再將這些合法的沒有 簽名的文件或者驅動程序文件還原過去。另外由於這個運行這個工具風險比較大,為此在Windows7操作系統中做了比較嚴格的限制,必須作為管理員才能夠 運行這個程序。注意這個管理員特質系統默認的administrator帳戶。也就是說,如果系統管理員建立了一個新帳戶,然後將這個帳戶加入到管理員 組。此時這個帳戶就具有了管理員的身份,但是其仍然不能夠運行這個sfc工具。因為他不是系統默認的管理員帳戶。微軟在這方面的限制,主要是為了防止這個 工具被濫用,從而影響其他用戶的應用程序。
另外還可以跟組策略結合來使用這個工具。如可以在組策略中配置在操作系統啟動的時候,自動運行這個工具。一般來說,如果Windows7操作系統只是作為 客戶端來使用,那麼這是維持其穩定性的一個很好的選擇。但是如果其是作為服務器來使用,那麼筆者不建議這麼做。由於服務器對於企業信息化應用的敏感性(服 務器出現故障所有相關應用的客戶端都會受到影響),所以只有在系統文件損壞或者驅動程序出現問題時才使用這個工具。並且在利用這個工具之前最好先使用簽名 認證工具查詢一下可能有問題的文件。在必要的情況下,還需要先對服務器中的數據進行備份。以防止由於文件恢復故障而導致操作系統無法啟動。為此筆者認為 sfc雖然是一個維護系統文件穩定的好工具,但是系統管理員還是需要謹慎使用。