作者:棋玉
案例1:
更新檔安裝失敗,重新開機後更新檔復原并且伺服器啟動報錯 bootmgr is missing
排查:
1.檢視cbs log,復原之前的報錯是copy bootmgr 的時候報錯了,這個就解釋了為什麼啟動會報錯bootmgr is missing。
錯誤代碼是0x5, 這個一般表示是acessdenied,沒有權限。
2.單獨下載下傳一個更新檔,手動安裝時發現直接報錯80070005
3.對于此類access denied 的問題,可以收集procmon 看一下具體是什麼導緻了access denied。
a.從下面連結下載下傳并且解壓該工具:
http://technet.microsoft.com/en-us/sysinternals/bb896645.aspxb.在出問題的機器上,輕按兩下Procmon.exe檔案(管理者身份打開)來抓取程序,您将會看到工具開始抓取程序。
c.當Process Monitor工具運作的時候, 請重制該問題。
d.當問題完全重制, 在該軟體的視窗中點選File -> Capture Events 來停止工具的運作. 然後點選 File -> Save 來儲存日志檔案。
4.收集procmon 日志,發現在向C槽根目錄寫入檔案報錯了。
5.檢視C槽根目錄的權限,發現其中有一條是拒絕使用者寫入的權限。
解決方案:
将使用者的拒絕權限删除後,更新檔成功安裝,伺服器正常啟動。
案例2:
更新檔安裝報錯80070005
1.檢視
c:\windows\logs\cbs\cbs.log
,看到在解壓更新檔的時候就報錯了,這種多是跟三方元件有關(客戶裝有360和安全狗),建議客戶解除安裝,客戶不同意解除安裝。
2.收集procmon日志,看到安全狗一直對檔案在進行讀寫請求。
解除安裝安全狗後,更新檔成功安裝
案例3:
安裝更新檔報錯80070005
需要檢視
c:\windows\windowsupdate.log
(主要是下載下傳過程)和
c:\windows\logs\cbs
(主要是安裝過程),看到報錯
Failed to query interface passed in handler for IID_ICbsUIHandler. [HRESULT = 0x80070005 - E_ACCESSDENIED]。
ACCESSDENIED 報錯表示拒絕通路,一般懷疑是三方元件的影響,禁用三方服務後,報錯依舊。
運作dcomcnfg打開元件服務,在元件服務——計算機——我的電腦上點選右鍵——屬性,按如下截圖所示設定。