遇過不少次Windows更新或Windows功能安裝失敗,上網爬文得到的回答往往都是先用SFC(系統檔案檢查程式)檢查系統檔案是否遺失或毁損,嚴然已是排除這類問題的SOP,就跟修車要先拆坐墊一樣天經地義。這幾天剛好有一次SFC檢測及系統檔案修補經驗,特筆記備忘。
我遇到無法安裝Windows功能的狀況,爬文大多建議先跑SFC檢查,SFC /SCANNOW還真的發現錯誤,可惜雙手一攤說沒法修復:
依KB文件的方法用findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log > d:\sfc-results.txt 過濾出SFC執行記錄,在其中看到失敗項目:
2015-08-26 18:01:33, Info CSI 00000998 [SR] Beginning Verify and Repair transaction
2015-08-26 18:01:33, Info CSI 0000099a [SR] Cannot repair member file [l:36{18}]"Amd64\CNBJ2530.DPB" of prncacla.inf, Version = 6.3.9600.17415, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type = [l:24{12}]"driverUpdate", TypeName neutral, PublicKey neutral in the store, hash mismatch
2015-08-26 18:01:33, Info CSI 0000099c [SR] Cannot repair member file [l:36{18}]"Amd64\CNBJ2530.DPB" of prncacla.inf, Version = 6.3.9600.17415, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type = [l:24{12}]"driverUpdate", TypeName neutral, PublicKey neutral in the store, hash mismatch
2015-08-26 18:01:33, Info CSI 0000099d [SR] This component was referenced by [l:166{83}]"Package_2709_for_KB3000850~31bf3856ad364e35~amd64~~6.3.1.8.3000850-6825_neutral_GDR"
2015-08-26 18:01:33, Info CSI 0000099e [SR] Repair complete
遇到這種狀況,可以試著用DISM(Deployment Imaging and Servicing Management)部署映像服務與管理工具進行修補,指令為 DISM /Online /Cleanup-Image /RestoreHealth。/Online選項代表執行對象為目前運作的Windows,/Cleanup-Image表示要執行清除或還原作業,/RestoreHealth表示掃描映像是否發生元件存放區損毀並自動執行修復作業,DISM遇到檔案缺損將自動由Windows Update伺服器下載正確的版本。
執行要花點時間,系統檔案缺損問題就修復囉。
如果是在企業內部已啟用WSUS(公司自行管理的Windows更新服務),可能需在「本機群組原則編輯器」加入以下設定:
在「指定選用之元件安裝和元件修復的相關設定」,指定直接連絡Windows Update而不要從WSUS下載。
最後補充,修復系統檔案未必能解決Windows更新或Windows功能無法安裝問題(我的問題就沒解… orz),但先把這類疑慮排除肯定有益無害,未來遇更新或功能安裝問題可優先試試。
2015-08-28 補充成功案例一則,我的筆電有30個Office相關更新一直安裝不起來,拖了超過半年。在昨天執行DSIM修復後,薑!薑!薑!薑~