前言:
我前幾天手賤,整個FileRepository刪除掉了,之后重啟就出現了讓人蛋疼的這個問題,因為出於各種原因不想重裝系統,百度輪番換搜索詞無果,雖然驅動裝上了但新設備依然無法自動安裝驅動等“一堆瑕疵”,重啟無數次折騰3天之后才在百度一個帖子的一個字眼里發現了解決辦法(說此方法的人自己說刪了INFCACHE.1后也無效,所以沒有引起注意),也因此有了這個隨筆:
1、首先你要恢復FileRepository文件夾,至於方法嘛,可以下載完整的WIN7系統鏡像后提取出來,如果是原版則用GImageX或WinMount等工具提取install.wim,ghost文件則用 ghost explorer;
2、進PE維護系統或一切你能用的辦法,比如什么文件粉碎機啦,打飛機啦,刪除System32\DriverStore(也就是FileRepository的父目錄)下的 INFCACHE.1 drvindex.dat infpub.dat infstor.dat infstrng.dat 5個文件,重啟解決。
3、萬一以上辦法對你無效,那你只能用我上面說到的先把驅動裝上,瑕疵不管它了,你自己再慢慢琢磨要怎么搞,不然像我連鍵盤都用不了,實在是很痛苦很痛苦的:
打開設備管理器->對應設備右鍵->更新驅動程序軟件->瀏覽計算機以查找驅動程序->將“在以下位置搜索驅動程序軟件”的位置指定到%windir%\winsxs->下一步
再說下自己得出的廢話經驗:
刪除后會出現此問題的,都是INF文件中沒有直接寫着對應設備硬件ID的那些驅動安裝程序,比如USB鼠標、鍵盤等這些太雜的東西,我的realtek PCI-E網卡驅動也是,查看INF文件后都是沒有我的硬件ID的,而以前卻依然安裝得上。我不知道微軟使用的是什么方法來判斷這個設備需要用到的是這個驅動。但反正問題就是這種判斷方式出現了問題,導致了驅動安裝不上。
PS:刪除INFCACHE.1這個文件后,已安裝驅動程序的簽名數據會丟失,設備管理器看到的非microsoft的驅動程序都是未經數字簽名。