平淡
從上述的故障表現和系統提示基本可以知道,問題的出現是系統可用資源(如內存、CPU資源)被后臺某些進程耗盡所致。由于這個問題是開機使用一段時間后才會出現,因此筆者首先強制重啟出現問題的電腦,進入系統后立刻開始全盤掃描殺毒,但是Windows Defender掃描的結果顯示并沒有發現病毒。因此,筆者決定手動對后臺進程進行監控。再次重啟電腦,進入系統后立刻啟動任務管理器,切換到“詳細信息”選項卡后,在任意列項目上右擊并選擇“選擇列”,然后在打開的窗口中勾選“句柄”“線程”“I/ O讀取”“I/ O寫入”“路徑名稱”和“命令行”等項目(圖2)。
接著返回到任務管理器窗口中等待,過了一段時間后筆者發現,其中“System”進程的句柄數一直在大量地增加(有時甚至達到幾十萬個,正常狀態一般只有幾千個),而且其“I/O讀取”、“I/O寫入”數字也在同步增加,顯然“系統資源不足”的問題就是該進程不斷增加的句柄數耗盡了系統的可用資源而導致的(圖3)。

通過上面的分析,知道問題的出現是“System”進程不斷增加的句柄所導致。通過圖3所示的“路徑名稱”,可以知道該進程運行的程序是“C:\Windows\System32\Ntoskrnl.exe”。但打開這個文件查看其屬性,從數字簽名、產品名稱均可以判斷是系統的正常文件(圖4)。
系統的正常文件怎么會導致上述問題的發生呢?原來,Ntoskrnl.exe是一個NT系統內核程序,它的主要作用是負責操作系統核心的任務。除了系統核心組件,日常驅動文件也是由其調用。它在任務管理器中對應的進程名為“System”,如果該進程占用了過多的系統資源,大多是由于其調用的驅動文件異常而導致的。
分析出導致問題的原因后,解決方法就是找出其調用的驅動,將其停止并刪除即可。一種方法是使用之前的文章中介紹的Process Explorer軟件來查看其調用的線程,找出異常的文件并刪除對應的服務。如果電腦中沒有Process Explorer軟件,也可以使用系統自帶的組件來查找。
1使用“資源監視器”篩選進程
在任務欄的搜索框中輸入“資源監視器”,啟動該組件后在進程列表中勾選“System”進行篩選(圖5)。接著再切換到“CPU”選項,展開下方的“關聯的模塊”,便會列出“System”進程加載的所有模塊。對于是否為可疑模塊,可以借助版本號來排查。點擊“版本”,按照版本號進行排序。一般來說系統文件的版本號都是一致的,可疑程序的版本號則大多和系統版本不同。通過仔細排查,其中名為“f hdisbfasu.sys”的模塊極為可疑(圖6)。
2使用“系統信息”查看模塊描述
在任務欄的搜索框中輸入“msinfo32.exe”啟動系統信息組件,在左側的窗格中依次展開“軟件環境→系統驅動程序”(也可以直接在下方的搜索框中輸入“fhdisbfasu.sys”查找),可以看到這個驅動的描述是“LoadVir tual Disk”,疑似為一個虛擬磁盤軟件的驅動文件(圖7)。

3查看文件屬性鑒別文件
按照圖7顯示的路徑提示,打開資源管理器并找到“C:\Windows\System32\Drivers\fhdisbfasu.sys”文件,查看其文件屬性,既沒有微軟數字簽名,也沒有版權等說明,因此基本上可以判斷,這是一個第三方軟件帶來的驅動(圖8)。
最終經過詢問該員工,原來是在某非正規網站下載的一個虛擬光驅軟件,安裝后導致上述問題的出現。筆者判斷應該是該安裝包內置了驅動木馬,或者其驅動和系統兼容性有問題導致的故障。找到導致問題的具體文件后,最后在注冊表中找到其加載的鍵值并刪除,重啟后再進入資源管理器刪除上述的驅動文件,自此順利地解決問題。