Windows 8 透過應用商店升級 8.1 時,在「準備重新啟動」階段出現錯誤 0x80004005。主因為關鍵 DLL 未正確註冊或防火牆阻擋 HTTPS (SSL) 連線。
解決步驟
- Win+X → 「命令提示字元 (系統管理員)」。
- 依序執行以下指令註冊 DLL(每行執行後按 Enter,等待「DllRegisterServer 成功」訊息):
regsvr32 Softpub.dll
regsvr32 Wintrust.dll
regsvr32 Initpki.dll
- 點擊各對話框「確定」。
- 重新開機。
- 再次嘗試升級 Windows 8.1,錯誤應解決。
原理分析
Softpub.dll、Wintrust.dll、Initpki.dll 負責 Authenticode 簽章驗證、憑證信任鏈、PKI 初始化,升級過程需驗證微軟簽章套件。
- 若這些 DLL 註冊遺失或損壞,驗證失敗導致 0x80004005 (E_FAIL)。
- 防火牆阻擋 HTTPS 同樣導致驗證失敗,註冊 DLL 後通常可恢復正常連線驗證。
補充檢查
- 確認系統時間正確(時間偏差大導致憑證驗證失敗)。
- 暫時停用第三方防火牆/防毒軟體。
- 若仍失敗,嘗試使用 Windows 8.1 ISO 媒體建立工具離線升級。
三條 regsvr32 指令,修復核心信任鏈 DLL,解決升級卡關錯誤。