遇過不少次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修復後,薑!薑!薑!薑~


Comments

# by J

Windows Update 錯誤 8007000b http://windows.microsoft.com/zh-tw/windows-vista/windows-update-error-8007000b ``` $ fsutil resource setautoreset true C:\ ``` 雖然上面說是 Vista 問題的解決方案,但我在 XP 和 Win7 都是靠這招解決無法更新的問題。

# by Jeffrey

to J, 謝謝分享

# by Bobby

請問一下 如果 我在輸入DISM那段後 執行 ,卻說 無法辨識此內容中的restoreHealth 這是什麼意思啊?

# by Jeffrey

to Bobby, 跟作業系統版本有關嗎?我查到這個:http://goo.gl/4GRFUt ".../CheckHealth, /ScanHealth, /RestoreHealth, /Source, and /LimitAccess can’t be used when servicing a version of Windows that is earlier than Windows 8 or Windows Server 2012 images"

# by Bobby

看樣子 可能有吧 我是WIN7 那我還有什麼方式可以解決window update的問題? 我下載系統更新整備工具 結果要安裝 一直卡在正在搜尋這部電腦上的更新 或者 我按window update 檢查更新 也檢查好幾個小時還在檢查 昨天有檢查完了 不過最後 全部更新失敗.... 然後 我去Microsoft Update Catalog ˊ這邊找更新檔 想說不要透過window update更新 結果 每一個 也都卡在正在搜尋這部電腦上的更新 我最一開始有用sfc / scannow去檢查 有錯誤 該怎麼修正?

# by Jeffrey

to Bobby, 這方面我經驗有限,建議可去論壇問看看,那裡有不少專家。http://answers.microsoft.com/zh-hant/windows/forum/windows_7

Post a comment