修復 Windows 更新錯誤 0x800f0823
修正惱人的 Windows 更新錯誤 0x800f0823。了解如何解決 CBS_E_NEW_SERVICING_STACK_REQUIRED 問題並成功復原 Windows 更新。
你需要知道的最重要的事情
- 錯誤 0x800f0823 是由服務堆疊 (SSU) 與累積更新 (LCU) 相比過時引起的,要修復此錯誤,需要在應用 LCU 之前手動安裝與 Windows 版本和內部版本相容的最新 SSU。
- 在進行任何修復之前,應先對系統磁碟進行完整備份或對虛擬機器進行快照;當透過 DISM 離線維護映像時,請確保先套用 SSU,然後再套用與映像結構完全匹配的 LCU。
- 如果 SSU 安裝仍然失敗,請使用 DISM /RestoreHealth 命令修復元件存儲,並透過停止服務和重新命名快取來重置 Windows 更新元件。
Windows 更新拒絕安裝並顯示錯誤 0x800f0823這表示您的系統服務堆疊版本過舊,無法處理您嘗試套用的更新套件。完整的錯誤訊息通常如下所示: CBS_E_NEW_SERVICING_STACK_REQUIRED您可能還會遇到「此更新無法套用至您的電腦」的訊息。一旦您了解了此服務堆疊的作用,解決方案就顯而易見了。

快速解答:要解決此錯誤,請下載並安裝與您的Windows 版本和處理器 (CPU) 架構相容的最新服務堆疊更新 (SSU) 。安裝完成後,重新啟動計算機,然後再次嘗試執行原始累積更新。
錯誤代碼 0x800f0823 是什麼意思?
錯誤代碼 0x800f0823 表示您的系統服務堆疊(負責安裝 Windows 更新的核心元件)已過時。此堆疊管理基於元件的服務 (CBS),後者控制著修補程式如何應用於作業系統。當堆疊版本落後於累積更新所需的版本時,安裝將停止,並且 CBS 會記錄此差異。
您可以透過查看CBS記錄更準確地驗證此錯誤的原因。打開文件。 C:WindowsLogsCBSCBS.log 尋找指定所需軟體包名稱和服務堆疊版本的行。典型的條目通常如下所示:
Error CBS Package "Package_for_KB5012170~31bf3856ad364e35~amd64~~14393.5285.1.4" requires Servicing Stack v10.0.14393.5285 but current Servicing Stack is v10.0.14393.4349. [HRESULT = 0x800f0823 - CBS_E_NEW_SERVICING_STACK_REQUIRED]
Windows 更新通常會定期安裝 SSU 更新,從而自動保持服務堆疊的最新狀態。此問題經常發生在長時間忽略更新的裝置上,因此長時間離線的實體機和虛擬機器最容易受到此錯誤的影響。無論您是透過直接 Internet 連線進行更新,還是套用離線 MSU 檔案進行更新,都會出現相同的錯誤。
開始之前:請備份您的系統磁碟。
由於服務堆疊變更會直接寫入核心作業系統元件,因此在開始之前備份作業系統磁碟至關重要。如果您在虛擬機器上操作,最好在進行任何變更之前建立快照或使用平台的還原功能。這樣可以確保您擁有一個安全的還原點,以便在手動安裝未如預期進行或出現其他問題時可以還原到該還原點。
解決方案 1:安裝最新的服務堆疊更新 (SSU)
此解決方案最適合解決問題的根本原因。它需要安裝與您的 Windows 版本和處理器 (CPU) 架構相容的服務堆疊更新 (SSU),並且必須在安裝累積更新 (LCU) 之前完成此操作。
1.確定裝置的 Windows 版本和確切架構。
按下 Windows 鍵,然後輸入 winver按回車鍵。記下版本號,以確保您取得的是正確的更新。
2.找出正確的 KB 編號。對於較新版本的 Windows 和 Windows Server,安全性更新會將服務堆疊更新 (SSU) 與最新的累積更新 (LCU) 合併在一起。因此,在搜尋目錄之前,請先在相關的更新記錄頁面上使用關鍵的 KB 編號來尋找捆綁包。
| 視窗版本 | 在哪裡可以找到 KB 編號 |
|---|---|
| 在Windows Server 2025 | support.microsoft.com/help/5047442 |
| 在Windows Server 2022 | support.microsoft.com/help/5005454 |
| 窗戶11 (所有版本) | support.microsoft.com/help/5065323 |
| 窗戶102004 年版及後續版本 | support.microsoft.com/help/5018682 |
| Windows 10 1809 與 Windows Server 2019 | Windows 10 與 Windows Server 2019 更新紀錄 |
對於 Windows 10 版本 1607 及更早版本,或 Windows Server 2016,請尋找獨立的 SSU 更新。在目錄中,使用類似以下的搜尋字串: ssu "Windows Server 2016" 選擇發布日期最新的條目。您可以在[網站/平台名稱]上查看舊版的最新SSU。 MSRC 服務堆疊更新通知關於每個 Windows 版本最新 SSU 發布日期的問題。
3.下載更新。
找出 KB 數 Microsoft 更新目錄搜尋結果通常每KB會傳回多個文件,因此請仔細閱讀每個標題,並選擇與您的系統架構(例如,x64)相符的文件。點擊“下載”,然後打開連結。 .msu 在彈出的視窗中儲存檔案。
4.安裝文件。雙擊下載的 MSU 文件,按照說明操作,然後重新啟動電腦或虛擬機器 (VM)。重新啟動後,新的服務堆疊才能生效。
5.重試之前的更新。在服務堆疊更新完成後,運行之前失敗的累積更新。現在應該可以順利安裝,不會再出現 0x800f0823 錯誤。
注意:知識庫 (KB) 文章可能使用與主文章不同的 KB 編號來引用其關聯的服務堆疊更新 (SSU) 套件。目錄僅列出主 KB 編號,因此請尋找主 KB 編號,而不是正文中提到的單獨的 SSU 編號。
修復方案二:離線 DISM 維護(在 LCU 之前應用 SSU)
如果您遇到錯誤 0x800f0823 使用 DISM 維護離線鏡像時,同樣適用以下規則:必須先更新服務堆疊 (SSU),然後再更新累積更新 (LCU)。在下載任何內容之前,請務必驗證鏡像的架構和版本,因為向 DISM 提供架構錯誤的軟體包(例如,為 x64 鏡像提供 ARM64 架構的 MSU 軟體包)會導致… 令人困惑的錯誤它有時可能表現為 0x80070002 在提取 MSU 資料包期間。
1. 直接從 WIM 檔案中讀取影像詳細信息,避免根據檔案名稱進行猜測。
dism /Get-WimInfo /WimFile:"D:sourcesinstall.wim" /index:1
檢查架構、版本和版本字段,然後從目錄下載對應版本和架構系列的 SSU 和 LCU 軟體包。
2. 掛載鏡像並先套用 SSU,再套用 LCU,使用本地短路徑中的自訂暫存目錄。
mkdir C:Mount
mkdir C:Scratch
dism /Mount-Wim /WimFile:"D:sourcesinstall.wim" /Index:1 /MountDir:"C:Mount"
dism /Image:"C:Mount" /Add-Package /PackagePath:"C:UpdatesSSU.msu" /ScratchDir:"C:Scratch"
dism /Image:"C:Mount" /Add-Package /PackagePath:"C:UpdatesLCU.msu" /ScratchDir:"C:Scratch"
dism /Image:"C:Mount" /Cleanup-Image /StartComponentCleanup
dism /Unmount-Wim /MountDir:"C:Mount" /Commit
3. 如果 DISM 在解壓縮 MSU 套件時失敗,請直接提取並安裝 CAB 檔案。這通常能揭示真正的問題所在,例如有效載荷結構錯誤。
mkdir C:UpdatesExtracted
expand -F:* "C:UpdatesSomeUpdate.msu" "C:UpdatesExtracted"
dism /Image:"C:Mount" /Add-Package /PackagePath:"C:UpdatesExtracted*.cab" /ScratchDir:"C:Scratch"
如果顯示提取的 CAB 檔案名 arm64 由於您的鏡像是 x64 格式(反之亦然),您已找到問題的根本原因。下載對應的軟體包,離線維護過程即可正常完成。
如果堆疊尚未更新:修復更新元件
損壞的更新組件會阻止 SSU 正確安裝。在這種情況下,兩種內建的修復方法非常有用,如果系統之前有更新失敗的記錄,建議在手動下載之前執行這些修復方法。
1. 使用 DISM 修復元件存儲,然後掃描系統檔案。以管理員身分開啟命令提示字元(提升權限的命令提示字元),執行還原命令,然後進行檔案掃描。
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
2. 重設 Windows 更新元件。停止相關服務,重新命名下載緩存,以便 Windows 重建它們,然後重新啟動這些服務。
net stop wuauserv
net stop cryptSvc
net stop bits
net stop msiserver
ren %systemroot%SoftwareDistribution SoftwareDistribution.old
ren %systemroot%System32catroot2 catroot2.old
net start wuauserv
net start cryptSvc
net start bits
net start msiserver
重新啟動電腦後,再次嘗試安裝 SSU。您也可以執行 Windows 內建的更新疑難排解程式(位於「設定」>「系統」>「疑難排解」),該程式可以自動偵測並修復常見的更新錯誤。
如何確保改革成功
當先前失敗的累積更新安裝完成,且錯誤代碼 0x800f0823 不再出現時,即表示修復成功。最後一次重新啟動後,請再次檢查更新,確保裝置報告已是最新版本。如果您想要在日誌層級進行驗證,CBS.log 檔案中將不再記錄針對該軟體包的 CBS_E_NEW_SERVICING_STACK_REQUIRED 條目。
為什麼改革有時會失敗?
| 原因 | ما يجب فعله |
|---|---|
| SSU 版本低於 LCU 所需的版本。 | 為您的微架構選擇最新的 SSU 發布日期;舊的 SSU 仍然會導致錯誤 0x800f0823。 |
| 下載的 CPU 架構不正確 | 鏡像應與 x64、x86 或 ARM64 匹配;不匹配會導致失敗,包括錯誤 0x80070002。 |
| LCU 是在 SSU(離線服務)之前實現的。 | 先安裝SSU,再安裝LCU。 |
| 組件儲存或更新快取損壞 | 運行 DISM /RestoreHealth 並重置更新元件,然後重試。 |
如果執行上述所有步驟後問題仍然存在,請保留 CBS.log 文件副本並聯繫 Microsoft 支持,同時附上相關的日誌數據,以便他們能夠查看失敗的程序包和所需的堆疊版本。修復 Windows 系統後,請保持自動更新啟用狀態,以確保服務堆疊保持同步,避免再次發生此錯誤。
評論被關閉。