快訊
2026-07-21
電腦疑難雜症

Windows Update 一直失敗怎麼辦?重設 SoftwareDistribution 與 Catroot2 該排在第幾步

約 15 分鐘閱讀

⚡ 站長快讀:核心重點

  • 文章屬性:疑難排除
  • 適用系統:Windows 11 / Windows 10(微軟官方支援版本)
  • 難易度 / 耗時:中等 / 約 20–40 分鐘
  • 核心結論:多半卡在更新快取或元件損毀。關鍵是分清兩件事——「清空 SoftwareDistribution 內容」屬一般排解步驟,「改名 DataStore、Download 與 catroot2」則被 IT 人員版官方文件標註「第一次請跳過」。
  • 適用對象:更新卡在某個百分比、反覆下載又失敗、或跳出 0x8007000d、0x800f0922 等錯誤碼的人。

📌 快速答案

一句話答案:Windows Update 失敗通常源自更新快取或系統元件損毀,建議先依錯誤碼判斷成因,再跑疑難排解員、清空 SoftwareDistribution 快取與 DISM、SFC,最後才停止服務改名 SoftwareDistribution 與 Catroot2 整包重設。

廣告

🧰 開始前的準備

  • 適用系統:Windows 11、Windows 10(微軟這兩份官方排解文件同時掛這兩個版本)
  • 權限需求:系統管理員(所有指令都必須在「以系統管理員身分執行」的命令提示字元中執行)
  • 需要工具:命令提示字元、「取得協助」App、服務管理員(services.msc);全部是 Windows 內建,不需要安裝第三方工具
  • 預計耗時:約 20–40 分鐘,DISM 掃描本身可能就要跑上十幾分鐘
  • 事前動作:微軟官方在排解步驟前明文要求先備份個人檔案,並確認裝置有接電源、網路穩定

🔍 症狀描述與錯誤訊息

Windows Update 失敗的表現方式其實不只一種,而多數人只認得「更新失敗」四個字。實務上常見的樣態包括:更新下載到某個百分比就不動了、重開機後跳出「我們無法完成更新,正在復原變更」、同一個累積更新反覆出現又反覆失敗、或是「檢查更新」按下去之後長時間空轉。這些症狀底下的成因可能完全不同,而分辨它們的關鍵就是設定頁面上那一串錯誤碼。

微軟官方在《Troubleshoot problems updating Windows》中直接列出了最常見的錯誤碼與對應成因,以下引用其中幾個代表性的:

0x8007000d — Windows Update 檔案有問題,或更新快取損毀

0x80070002 — 更新安裝失敗

0x800f0922 — 磁碟空間不足,或 .NET Framework 等元件有問題

0xC1900101 — 有不相容的驅動程式導致更新失敗

0x80248014 — Windows Update 資料庫有問題,或更新服務未執行

0x80070005 — 存取被拒,權限不足以安裝更新

這裡就藏著本文第一個重點:這六個錯誤碼裡,只有一部分跟更新快取有關。0x800f0922 是磁碟空間或元件問題、0xC1900101 是驅動程式不相容——這兩種情況你把 SoftwareDistribution 砍掉重練一百次也不會好。先看錯誤碼,再決定手段,這一步能省掉大半冤枉路。

第二個重點更容易被忽略:微軟其實有兩份文件在談這件事,而且位階不同。給一般使用者的《Troubleshoot problems updating Windows》把「清除 Windows Update 快取」(停服務、刪掉 C:\Windows\SoftwareDistribution 內的檔案、再啟動服務)放在一般排解步驟(共十步)的第 5 步,不在「進階排解步驟」章節裡;而給 IT 人員的《Windows Update – additional resources》在手動重設程序中,把「改名 DataStore、Download 與 catroot2」這一步明文標註為:若這是你第一次依該文排解,請直接跳過它,只有其他步驟都無效才回頭做。

換句話說,「清空快取內容」和「改名整個資料夾」在官方眼中不是同一件事,但中文教學經常把兩者混為一談,開口就叫你貼改名指令。本文以下的順序是站長依這兩份文件的位階整理出來的建議路徑,並非某一份官方文件的原始步驟編號。


🔎 問題根因

先給結論:Windows Update 失敗的根因,絕大多數落在「更新快取損毀」「系統元件存放區損毀」「環境條件不足」這三類其中之一,而三類的處置方式完全不同。

廣告

「更新快取損毀」指的是 Windows 下載更新時暫存在 C:\Windows\SoftwareDistribution 的那批資料出了問題——可能是下載中途斷線、可能是磁碟寫入錯誤,結果就是更新代理程式拿著一份壞掉的中繼資料反覆重試。微軟官方的處置很直接:停掉服務、清掉這個資料夾,讓系統重新下載一份乾淨的。

「系統元件存放區損毀」則是更深一層的問題。Windows 更新是把新的元件疊到既有的元件存放區上,如果存放區本身有檔案缺損,更新就會在安裝階段失敗。這一類要靠 DISM 修復映像、再用 SFC 還原受保護的系統檔案,微軟官方明確指出DISM 要跑在 SFC 之前,因為 DISM 負責提供修復所需的檔案來源。

「環境條件不足」聽起來最笨,卻是最常被跳過的:微軟官方明訂升級所需的可用空間為 32 位元系統 16 GB、64 位元系統 20 GB;此外日期時間設定錯誤、第三方防毒軟體攔截、外接裝置干擾,官方排解清單裡全都列了。這些檢查不需要任何指令,卻能解掉相當比例的案例。


🔬 底層機制:這個錯誤訊號從哪裡來?

要理解為什麼「改名資料夾」會有效,得先知道被改掉的到底是什麼。

%SystemRoot%\SoftwareDistribution 底下,微軟官方重設程序點名的是兩個子資料夾:DataStoreDownload。這兩個名字不是隨便取的——微軟官方的 Windows Update 記錄檔文件在說明更新引擎的元件時明載:DataStore 負責「在本機快取更新資料」(Caching update data locally)、DownloadManager 負責「建立並監控酬載下載」(Creates and monitors payload downloads);同一份文件也指出,用戶端的更新資訊本機快取就放在 %WINDIR%\SoftwareDistribution\Datastore\Datastore.edb。(要精確一點說:官方該段講的是記錄檔裡會出現的元件名稱,資料夾與元件同名、職責相對應,是本文所作的對應。)兩者一改名,更新代理程式找不到舊的快取與狀態,就會從頭建立一份新的——這也是為什麼這個動作被稱為「重設」而不是「修復」。

%SystemRoot%\System32\catroot2 則是另一回事。值得注意的是,微軟官方的重設步驟要求連同「密碼編譯服務」(cryptsvc)一起停止,才能動這個資料夾;而在快速版本的指令中,catroot2 也是唯一跟 SoftwareDistribution 並列被改名的目標。合理推斷是:catroot2 存放的是更新套件的簽章驗證相關資料,由密碼編譯服務把持。當這裡的資料與實際套件對不上,更新就會在驗證階段被擋下,而症狀看起來卻只是「更新失敗」——這正是它必須跟 SoftwareDistribution 一起重設的原因。

廣告

至於「更新到底失敗在哪一步」,還有一層很多人不知道的變化:Windows Update 用戶端自 Windows 8.1 起就改用 ETW(Event Tracing for Windows)產生診斷記錄,不再直接產生可讀的 WindowsUpdate.log。要拿到單一份看得懂的記錄檔,必須執行 PowerShell 的 Get-WindowsUpdateLog,由它把 .etl 追蹤檔合併轉換;官方並註明,這樣產出的是靜態檔,不會像舊版那樣持續更新,想看最新狀況得再跑一次。

官方同一份文件還列了另外兩個排錯時很有用的位置:更新協調器的 UpdateSessionOrchestration.etl 位於 C:\ProgramData\USOShared\Logs,官方建議在「更新明明可用卻沒開始下載」「下載完卻沒觸發安裝」「安裝完卻沒觸發重開機」時查看;而 %systemroot%\Logs\CBS 底下的 CBS.log 則負責呈現維護堆疊中的更新安裝環節。知道要去哪一份看,比盲跑指令有效得多。


🛠️ 解決方案

⚠️ 執行前務必確認:①已備份重要個人檔案;②筆電請接上電源,勿在電量不足時執行;③以下指令全部需要在「以系統管理員身分執行」的命令提示字元中輸入;④若這是公司或學校管控的裝置,請先取得 IT 授權再動手。

停止條件:若你不確定自己的 Windows 版本、尚未完成備份,或指令輸出與本文描述明顯不符,請停在原地不要繼續往下做。

方法一:疑難排解員 + 基本環境檢查(先做這個)

微軟官方對 Windows 11 使用者的第一順位建議,是在「取得協助」(Get Help) App 中執行自動化的 Windows Update 疑難排解員,由它自動診斷並嘗試修復。你也可以從設定頁面進入:

  1. 開啟「設定」→「系統
  2. 選擇「疑難排解」→「其他疑難排解員
  3. 找到「Windows Update」,按「執行
  4. 依畫面指示完成

這裡順帶提一個時效性的坑:微軟已公告將淘汰舊版內建疑難排解員與其執行平台 MSDT,並把其中一部分導向新的「取得協助」平台,Windows Update 疑難排解員正在該份導向清單內;官方同時說明 Windows 11 22H2 及更舊的版本不受此退場影響。也就是說,你在不同版本上看到的入口可能不一樣,以「取得協助」App 為準最穩。

疑難排解員跑完後,把官方清單上這幾件事一併檢查掉:確認網路連線正常、確認帳號有系統管理員權限、拔掉不必要的外接裝置、確認日期與時間設為自動、確認可用空間達到官方要求的 16 GB / 20 GB 門檻。這些沒過,後面做再多都是白工。如果你對更新設定本身還不熟,可以先參考站上這篇 Windows Update 系統更新完整設定教學 把基礎設定確認一遍。

方法二:DISM 修復映像,再跑 SFC

方法一無效,就進到元件層。微軟官方的順序是 DISM 先、SFC 後:

廣告
DISM.exe /Online /Cleanup-image /Restorehealth

這道指令會用 Windows Update 當作修復來源,可能需要跑數分鐘到十幾分鐘。官方提醒:成功時會出現「還原作業已順利完成」或「作業順利完成」的訊息;若沒看到確認訊息,請重新輸入指令再試一次。

這裡有個雞生蛋的問題值得注意——DISM 預設拿 Windows Update 當來源,但你現在的處境正是 Windows Update 壞了。官方對此提供了指定本機來源的做法,可改用掛載的安裝媒體或並存資料夾作為修復來源。

DISM 跑完之後接著執行:

sfc /scannow

掃描過程中不要關閉命令提示字元視窗,務必等到 100%。 SFC 會掃描所有受保護的系統檔案,並以快取的完好副本替換損毀檔案。若結果顯示「找到損毀檔案但無法修復其中部分」,官方的做法是到 %windir%\Logs\CBS\CBS.log 撈出 [SR] 記錄,找出是哪個檔案出問題。這兩道指令的完整用法與各種輸出訊息的判讀,站上另有專文:SFC 與 DISM 指令修復教學

方法三:重設 SoftwareDistribution 與 Catroot2(最後手段)

這一步的定位要先講清楚,才不會被網路教學帶偏。 微軟給 IT 人員的《Windows Update – additional resources》在手動重設程序中,把「改名 SoftwareDistribution\DataStoreSoftwareDistribution\DownloadSystem32\catroot2」這一步明文標註為:如果這是你第一次依該文排解更新問題,請直接跳過它往下一步走,只有其他步驟都無法解決時才回頭執行。

要注意的是,這條註記出自 IT 人員版文件、對象是上述三個子資料夾;一般使用者版《Troubleshoot problems updating Windows》在「進階排解步驟」章節裡列出的改名指令並沒有附上同樣的註記。兩份文件寫給不同讀者,位階自然不同——但既然官方在其中一份明確表達了「這步別急」,本文就把它放在前兩個方法之後。

確認前兩個方法都無效之後,再依一般使用者版文件的指令執行:

net stop bits
net stop wuauserv
ren %systemroot%\softwaredistribution softwaredistribution.bak
ren %systemroot%\system32\catroot2 catroot2.bak
net start bits
net start wuauserv

全部執行完畢後關閉視窗並重新啟動電腦,再回到 Windows Update 重新檢查更新。

官方另有一份給 IT 人員的進階版程序,差別在於會多停止密碼編譯服務(net stop cryptsvc)、刪除 BITS 佇列檔 qmgr*.dat、把 DataStore 與 Download 分開改名,並在最後重新註冊一批系統 DLL、重設 Winsock。

兩件官方警告,本文刻意不轉貼完整指令:

  1. 進階版中有一組 sc.exe sdset 指令,用途是把 BITS 與 Windows Update 服務的安全描述元重設為預設值。官方在該步驟前特別標註:這個動作會覆寫你現有的安全性 ACL 設定,除非其他重設步驟都無效,否則請略過。這種會改動服務權限的指令,不適合在沒有理解的情況下複製貼上。
  2. 重新註冊 DLL 的 regsvr32 清單有三十幾行。與其在這裡貼一大串讓人盲貼,不如直接到文末的微軟官方頁面複製最新版本——這類清單會隨版本調整,轉載內容過期的風險比自己去官方複製高得多。
Windows Update 失敗處置順序流程圖:先看錯誤碼、疑難排解員、DISM 與 SFC、最後才改名資料夾

✅ 驗證修復結果

修好沒有,不能只看「這次更新裝上去了」就算數,那可能只是暫時繞過。建議做完三件事:

  1. 重新檢查更新並完整安裝到重開機結束:到「設定」→「Windows Update」→「檢查更新」,讓它把待裝的更新全部裝完並完成重新開機。官方特別提到,即使先前已下載部分更新,後面可能還有更多可用更新。
  2. 回頭確認 SoftwareDistribution 有被重建:如果方法三執行成功,C:\Windows 底下會同時看到新的 SoftwareDistribution 與舊的 softwaredistribution.bak。新資料夾有被建立,代表服務確實重新運作了。
  3. 需要深入確認時,拉一份可讀的更新記錄檔:在 PowerShell 執行 Get-WindowsUpdateLog,它會把 ETW 的 .etl 檔合併轉出一份 WindowsUpdate.log。要注意這份是靜態快照,不會像舊版那樣持續更新,想看最新狀況必須再跑一次。

🔙 萬一翻車:回退步驟

這套流程的好消息是:方法三是可回退的,因為官方要你「改名」而不是「刪除」,就是為了留退路。

情境一:更新仍然失敗,想還原原本的快取。(此還原順序為本站建議,非官方程序——官方程序只要求改名並重新啟動,未載明還原方式。)重新開機後,先停止 bitswuauserv 兩個服務,刪掉系統新建的 SoftwareDistributioncatroot2,再把 .bak 的兩個資料夾改回原名,然後啟動服務。實務上很少需要這樣做——舊快取正是問題來源,還原它的意義通常不大。

情境二:服務停不下來或改名時提示檔案使用中。 這代表有程序仍佔用該資料夾。先重新開機,在開機後盡快執行指令,不要等系統開始自動檢查更新。

情境三:改完之後系統出現其他異常。 回到方法二重跑一次 DISM 與 SFC。若仍不穩定,Windows 11 使用者可考慮用系統還原點回到動手前的狀態;站上有 Windows 11 時間點還原(Point-in-time Restore)教學 可以參考。

情境四:確認要放棄修復。 微軟官方在這份排解文件的最後,列的是重灌:透過官方軟體下載頁取得工具執行全新安裝。這是官方認可的終點,不是失敗。


💡 總結:預防再次發生

站長我處理這類案子的順序,幾乎從來不是從指令開始,而是從那串錯誤碼開始。原因很簡單:更新失敗的症狀高度重複,但成因分岔很早——同樣是「更新裝不起來」,0xC1900101 要去查驅動程式、0x800f0922 要去看磁碟空間,這兩種情況下把 SoftwareDistribution 砍掉重練,除了浪費一次重開機之外什麼也不會發生。先分類再動手,是這題最省時間的做法。

第二個習慣是尊重官方把步驟排在哪個順位。微軟把改名資料夾放在「其他都無效才做」、把 sc.exe sdset 標註成「會覆寫 ACL、非必要別碰」,這些順位不是隨便排的,而是按照風險與副作用排的。網路教學為了寫得「一次解決」,常把整包指令壓成一串讓人複製貼上,順位資訊就在轉載過程中掉光了。

預防面上,能做的其實不多但都有效:留足夠的磁碟空間、別讓更新在下載途中被強制關機打斷、第三方防毒軟體如果反覆與更新衝突就考慮換一套官方相容清單上的產品。另外提醒一個方向相反但同樣常見的需求——如果你的困擾其實是「更新太主動」而不是「更新裝不起來」,那要處理的是更新排程而不是快取,兩者的解法完全不同,別把它們混為一談。


❓ 常見問題

Q:SoftwareDistribution 資料夾可以直接刪掉嗎?

可以,但不建議當成第一步。微軟官方在「清除 Windows Update 快取」的步驟中,確實是要你停止 Windows Update 服務後刪除 C:\Windows\SoftwareDistribution 內的所有檔案與資料夾,再重新啟動服務;官方另一份文件也提供了直接以 rd /s /q 移除整個資料夾的重設寫法。不過官方在手動重設程序中把改名 DataStore/Download 標為「其他步驟無效才做」,所以順序上還是建議先跑疑難排解員與 DISM/SFC。

Q:Catroot2 改名之後要做什麼才會生效?

官方文件在這串指令之後只交代兩件事:重新啟動 BITS 與 Windows Update 服務,然後關閉命令提示字元視窗並重新啟動電腦。至於系統何時、以什麼機制重建 catroot2,現行 Windows 10/11 支援文件並未說明,本文也不做推測。實務上請照官方步驟走完重開機,再回到 Windows Update 檢查更新。

Q:為什麼舊教學說的 WindowsUpdate.log 派不上用場?

因為產生方式變了。依微軟官方文件,Windows Update 用戶端自 Windows 8.1 起改用 ETW 產生診斷記錄,不再直接產生可讀的 WindowsUpdate.log(官方文件所列位置為 C:\Windows\Logs\WindowsUpdate);要取得單一份看得懂的記錄檔,需執行 PowerShell 的 Get-WindowsUpdateLog 合併轉換 .etl,且產出為靜態檔。

Q:修完之後又復發怎麼辦?

反覆復發代表根因沒被解掉,而不是快取又髒了。優先往三個方向查:磁碟空間是否長期逼近門檻、是否有特定驅動程式每次都在同一個更新上失敗(對應 0xC1900101)、以及第三方防毒是否持續攔截。微軟官方對後者的建議是暫時移除第三方安全軟體、更新完成後再裝回,並確認該軟體與目前 Windows 11 版本相容。


🔗 延伸閱讀


📎 參考資料來源

📖 第一級|廠商官方:

⚠️ 本文核心事實以第一級官方文件為準。DataStore 與 Download(DownloadManager)之職責係引自微軟官方 Windows Update 記錄檔文件之元件說明;catroot2 與簽章驗證之關聯則為依官方重設程序操作要求所作之合理推斷,現行 Windows 10/11 支援文件未明文定義,已於內文以「合理推斷」字樣標示。文中排解順序為本站依微軟兩份官方文件位階整理之建議路徑,非單一官方文件之原始步驟編號。

📅 本文查證戳記:2026-07-20 依微軟官方 Windows 11 / Windows 10 支援文件撰寫,非站長第一手實測。

若你在後續版本遇到步驟失效,歡迎在留言區回報,站長會更新文章。


廣告