快訊
2026-08-15
Windows教學

WinSxS 資料夾為什麼這麼大?正確計算與安全清理方法

約 12 分鐘閱讀
廣告

⚡ 站長快讀:核心重點

  • 文章屬性:疑難排除
  • 適用系統:Windows 10 22H2、Windows 11 23H2 以上
  • 難易度 / 耗時:⭐⭐(方法一、二)、⭐⭐⭐(/ResetBase)/ 分析 5 分鐘內,清理約 10–40 分鐘
  • 核心結論:WinSxS 在檔案總管看到的容量多半是 hard link 重複計算的假數字;真正算得上負擔的只有備份與快取兩項,而且「負擔」不等於「一定回收得到」。
  • 適用對象:C 槽爆滿、發現 WinSxS 十幾 GB,想知道能不能刪的人。

📌 快速答案

一句話答案:WinSxS 的真實佔用要用 DISM AnalyzeComponentStore 的分析報告來算,可清的部分只能交給系統內建指令處理,絕不能手動刪除資料夾或用第三方工具動它。


🧰 開始前的準備

  • 適用系統:Windows 10 22H2、Windows 11 23H2 以上(含 24H2 / 25H2 / 26H1)
  • 權限需求:系統管理員(本文所有 DISM 指令都必須以系統管理員身分執行)
  • 需要工具:命令提示字元或 Windows 終端機(系統內建)、工作排程器(選用,系統內建)
  • 預計耗時:分析約 1–5 分鐘;清理視更新累積量而定,10–40 分鐘不等

⛔ 停止條件(符合任一項,請先別動手)

  • 不確定自己的 Windows 版本或組建編號
  • 有未完成的 Windows Update(系統顯示「需要重新開機」)
  • 正在排查更新災情,接下來可能需要解除安裝某個更新
  • 公司或學校管控的設備,且沒有 IT 授權
  • 打算執行方法三,但沒有可用的還原點或系統映像備份

🔍 症狀描述與錯誤訊息

多數人是這樣發現 WinSxS 的:C 槽只剩幾 GB,拿容量分析工具或檔案總管的「內容」一層一層往下查,最後停在 C:\Windows\WinSxS——這個資料夾顯示八 GB、十二 GB,甚至比整個 Program Files 還大。接著上網搜尋,會看到兩派完全相反的說法:一派叫你直接刪掉、一派叫你跑 DISM 指令,還有一堆「系統瘦身」工具宣稱能幫你清乾淨。

你會看到的典型畫面是:

檔案總管 → 對 C:\Windows\WinSxS 按右鍵 → 內容 → 大小:12.4 GB(佔用空間:12.4 GB)

或者是磁碟清理跑完、暫存檔也刪了,C 槽卻幾乎沒有變化,而 WinSxS 依舊維持兩位數 GB。

這裡最常見的錯誤結論是:「WinSxS 是更新留下來的備份垃圾,整個刪掉就能省十幾 GB。」 這句話在兩個層次上都是錯的:第一,你看到的那個數字本來就不是它真正佔用的空間;第二,就算真的想清,也只有一小部分可以回收,而且刪錯的代價是系統無法開機、無法更新。


🔎 問題根因:你看到的數字是重複計算的

直接結論:檔案總管算目錄大小時不會處理 hard link,所以 WinSxS 裡同一份資料被算了很多次。

廣告

微軟官方文件寫得很白:元件存放區(WinSxS)裡的檔案看起來像是同時存在於作業系統的多個位置,但實際上通常只有一份,其餘都是 hard link;而像檔案總管這類工具在計算目錄大小時,並不會考慮裡面的檔案是不是 hard link,因此讓人誤以為 WinSxS 佔掉的磁碟空間比實際多很多。

hard link 是檔案系統物件,讓兩個檔案指向磁碟上的同一個位置。官方用一個例子解釋這件事有多反直覺:目錄 A 有 1.txt、2.txt、3.txt,目錄 B 有 4.txt;1.txt 與 2.txt 互為 hard link、共 1 MB 資料,3.txt 與 4.txt 互為 hard link、共 2 MB 資料。那麼「目錄 A 有多大」的答案取決於你要做什麼:

  • 逐一讀取 A 裡的所有檔案 → 讀到 4 MB
  • 把 A 全部複製到別的位置 → 複製 3 MB 資料
  • 刪掉 A 想換回空間 → 只會真的省下 1 MB

第三種答案,才是「刪掉 WinSxS 能省多少」的正確算法。與系統其他位置 hard link 在一起的檔案是系統運作必需,本來就不該算在 WinSxS 頭上。


🔬 底層機制:元件存放區到底存了什麼

Windows 元件存放區最早在 Windows XP 出現,用來支援 side-by-side 組件;從 Windows Vista 開始擴充成追蹤與服務「組成整個作業系統的所有元件」。元件會追蹤檔案、目錄、登錄機碼與服務等物件,特定版本的元件再被收攏成「套件(package)」,而 Windows Update 與 DISM 就是用套件來更新 Windows。

換句話說,WinSxS 不是垃圾桶,它是 Windows 的維修零件庫,以下這些事情全都靠它:

  • 用 Windows Update 安裝新版元件
  • 啟用或停用 Windows 功能(例如 Hyper-V、.NET Framework 3.5)
  • 在不同 Windows 版本之間移轉
  • 從檔案損毀或開機失敗中復原
  • 解除安裝有問題的更新
  • 執行使用 side-by-side 組件的程式

這也解釋了為什麼它會隨時間變大:每次累積更新裝進來,舊版元件會被保留一段時間,好讓系統在新版元件出問題時能退回去;過一段時間之後,系統才會自動把這些舊元件移除。順帶一提,從 Windows 11 24H2 開始,最新的累積更新可能會有「檢查點累積更新」作為前置需求,更新的組成方式比過去更複雜——這也是不該用手動刪檔案去干預服務堆疊的原因之一。

廣告

🛠️ 正確計算:用 DISM 問出真實大小

直接結論:不要看檔案總管,改問 DISM。 以系統管理員身分開啟命令提示字元,執行:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

官方文件提供的範例輸出長這樣(以下為微軟文件的示例,非本站實測數據):

Component Store (WinSxS) information:

Windows Explorer Reported Size of Component Store : 4.98 GB

Actual Size of Component Store : 4.88 GB

    Shared with Windows : 4.38 GB
    Backups and Disabled Features : 506.90 MB
    Cache and Temporary Data : 279.52 KB

Date of Last Cleanup : 2021-06-24 23:32:22

Number of Reclaimable Packages : 0
Component Store Cleanup Recommended : No
WinSxS 清理決策四步流程圖:先量、再讀、看建議、才清理

各欄位怎麼讀:

欄位意義算不算真正的負擔
Windows Explorer Reported Size檔案總管會報出來的大小,不考慮 hard link❌ 參考值,別當真
Actual Size of Component Store已計入 WinSxS 內部的 hard link,但仍包含與系統共用的檔案⚠️ 不等於可回收量
Shared with Windows以 hard link 同時出現在存放區與其他位置、供系統正常運作的檔案❌ 不算存放區負擔
Backups and Disabled Features為了因應新元件失敗而保留的備份、可再啟用的功能,以及中繼資料✅ 算
Cache and Temporary Data元件存放區內部用來加速服務作業的檔案✅ 算

官方明載的算式:元件存放區真正的額外負擔 = Backups and Disabled Features + Cache and Temporary Data。以上面那份官方範例來說,WinSxS 看起來是 4.98 GB,實際負擔只有約 507 MB——差了將近十倍。

另外兩個欄位是行動依據:Number of Reclaimable Packages 是系統上可被清理移除的被取代套件數量,Component Store Cleanup Recommended 則是微軟直接告訴你「清了會不會有效果」。如果這一行顯示 No,就到此為止,不要再往下做。(官方原文只說「顯示需要清理時就依清理文件處理」,「顯示 No 就收手」是站長依此欄位定義給的判斷建議。)

重點摘要:

廣告
  • 檔案總管的數字沒有參考價值,唯一該信的是 DISM 的分析報告
  • Actual Size 也不是可回收量,它包含系統共用的檔案
  • 真正的負擔只有備份與快取兩項相加
  • Component Store Cleanup Recommended: No = 收手
  • Number of Reclaimable Packages 為 0 時,清理不會換回明顯空間

🛠️ 解決方案:三種清理方式,代價各不相同

三種 WinSxS 清理方式比較:排程工作、DISM 清理、加上 ResetBase

方法一:讓系統自己清(最保守)

Windows 內建 StartComponentCleanup 排程工作,會在系統閒置時自動清理元件。它的行為刻意保守:自動執行時,會等待更新元件安裝至少 30 天之後,才移除該元件的舊版本;如果你手動觸發它,則有 1 小時逾時限制,可能不會完全清完所有檔案。

手動觸發(系統管理員身分):

schtasks.exe /Run /TN "\Microsoft\Windows\Servicing\StartComponentCleanup"

也可以開啟工作排程器,展開到「工作排程器程式庫\Microsoft\Windows\Servicing\StartComponentCleanup」後按「執行」。

方法二:DISM 立即清理(多數人該用這個)

Dism.exe /online /Cleanup-Image /StartComponentCleanup

結果與方法一相近,差別在於:被更新元件的舊版本會立即刪除、沒有 30 天寬限期,而且沒有 1 小時的逾時限制。對「剛裝完一輪大更新、確認系統穩定、想把舊元件清掉」的情境,這是最合適的做法。

方法三:加上 /ResetBase(⭐⭐⭐ 不可逆,想清楚再做)

⚠️ 高風險操作警語:執行前請先建立系統還原點或系統映像備份,確認筆電接上電源、桌機供電穩定,過程中不要中斷或強制關機。

Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase

加上 /ResetBase 會移除元件存放區中每一個元件的所有被取代版本,能進一步縮小存放區。代價寫在官方警告裡:指令完成後,所有既有的更新套件都無法再解除安裝;不過這不會擋住未來更新套件的解除安裝。

還有兩個少人提到的細節:

  • 從 Windows 10 1607 開始可以搭配 /Defer 使用,但官方明講這只該用在工廠情境,也就是 DISM /Resetbase 需要超過 30 分鐘才能完成的時候,把長時間作業延到下次自動維護。一般使用者不需要碰。
  • 想知道這台機器上次跑 /ResetBase 是什麼時候,可以查登錄檔路徑 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing 底下的 LastResetBase_UTC 項目。

補充:圖形介面的做法

不想碰指令的話,官方也把「磁碟清理」列為縮小元件存放區的方式之一——清理更新的選項可以減少元件存放區大小。在目前的 Windows 11,一般會從「設定 → 系統 → 儲存空間 → 清理建議」進去,或在檔案總管選取磁碟機後,由右上角「⋯」選單叫出傳統磁碟清理工具(依第二級技術媒體整理,Windows 11 22H2 前後磁碟機右鍵內容裡的舊入口已被取代;微軟未就此版本分界發布正式公告)。效果通常比方法二保守,但操作門檻最低。

⛔ 三件絕對不要做的事

  1. 手動刪除 WinSxS 內的檔案或整個資料夾。 官方警告寫得很直接:有些重要系統檔案只存在於 WinSxS,刪除可能嚴重損壞系統,導致電腦無法開機、也無法更新。
  2. 用第三方「系統瘦身」工具去動元件存放區。 服務堆疊的狀態一致性不是靠檔案存在與否維持的,外部工具刪檔案不會同步中繼資料。
  3. 停用元件清理。 微軟強烈建議不要停用元件清理——它是維持系統效能與釋放空間的必要機制,停用會讓不必要的檔案持續累積。

✅ 驗證修復結果

清理跑完、重新開機後,再跑一次分析指令:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

三個地方要對:

  • Date of Last Cleanup 更新成今天的日期
  • Number of Reclaimable Packages 降為 0(或明顯變少)
  • Component Store Cleanup Recommended 顯示 No

如果想確認服務堆疊沒有受損,再跑一次系統檔案與映像健康檢查即可;完整的檢查順序與各指令差異,可參考站內的 SFC 與 DISM 指令修復教學


🔙 萬一翻車:回退步驟

方法一、方法二:被刪掉的是已被取代的舊版元件,系統本體不受影響。若清理後出現異常,依序執行(每行一條指令,不要串在同一行):

Dism.exe /Online /Cleanup-Image /RestoreHealth
sfc /scannow

方法三 /ResetBase:沒有回退路徑。 這是本文唯一不可逆的操作——指令完成後既有更新無法解除安裝,這個狀態沒有指令可以還原。萬一之後某個既有更新造成問題,只剩下三條路:①用清理前建立的系統還原點或映像備份還原;②執行就地升級修復安裝把系統檔案重鋪一次;③重灌。這也是前面要求先做備份的原因。

清理過程中斷電或被強制中斷:重新開機後先跑 Dism.exe /Online /Cleanup-Image /RestoreHealth,確認映像健康後再決定要不要重跑清理。


💡 總結:預防再次發生

站長我看過太多 C 槽急救的案例,問題幾乎不是出在「不知道怎麼清」,而是出在順序反了——先動手刪,再回頭問這東西是幹嘛的。WinSxS 是最典型的受害者:它長得像垃圾堆,實際上是 Windows 的維修零件庫,而且你看到的那個數字從一開始就不是它真正吃掉的空間。

養成三個習慣,這題就不會再來煩你:

  • 先量再清:任何時候想動 WinSxS,第一個動作永遠是 AnalyzeComponentStore,而不是刪除鍵。系統說 Cleanup Recommended: No,就代表沒得清,不必再折騰。
  • 分清楚 WinSxS 與 Windows.old:就地升級後產生的 C:\Windows.old 是舊系統的完整備份,系統會在保留期過後自動清除,那才是動輒十幾 GB 的大宗,和元件存放區是兩回事。
  • 大更新後給它幾天:剛裝完累積更新時存放區會暫時變大,那是保留舊元件供回退用的正常行為;確認系統穩定後再清,才不會把救命的退路一起清掉。

如果你的 C 槽本來就長期吃緊,與其反覆跟 WinSxS 拉扯,不如從整體配置下手——站內另有一篇Windows 11 24H2 減肥指南談的是關閉不需要的功能與釋放 SSD 空間,和本文的「正確計算元件存放區」剛好互補:一個管系統設定面,一個管服務堆疊面。


❓ 常見問題

Q:WinSxS 可以直接刪掉嗎?

不行。微軟官方文件明確警告:有些重要的系統檔案只存在於 WinSxS 資料夾,刪除該資料夾內的檔案或整個資料夾,可能嚴重損壞系統,導致電腦無法開機並且無法更新。要縮小它只能用內建工具。

Q:清理完為什麼 C 槽沒有多出很多空間?

因為可回收的本來就只有「備份與停用功能」加「快取與暫存資料」兩項,不是你在檔案總管看到的那個數字。如果分析報告顯示 Number of Reclaimable Packages: 0,那就代表沒有可清的被取代套件,回收量趨近於零是正常結果。

Q:跑了 /ResetBase 之後,以後的更新還能解除安裝嗎?

可以。官方說明是:指令完成後既有的更新套件無法解除安裝,但這不會阻擋未來更新套件的解除安裝。真正的風險期是你已經裝好、但還沒確認穩定的那些更新。

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

元件存放區隨更新變大是設計行為,不是故障。定期(例如每半年,或每次功能更新穩定後)跑一次分析,依 Component Store Cleanup Recommended 決定要不要清即可;平常就讓 StartComponentCleanup 排程工作自己跑,不需要人工介入。


🔗 延伸閱讀


📎 參考資料來源

📖 第一級|廠商官方:

📖 第二級|權威技術媒體:

⚠️ 本文核心事實以第一級為準,第二級為補充。本文為官方文件與權威來源交叉查證之整理(證據等級 E3),非第一手實測。

📅 本文查證戳記:2026-08-15 依據 Microsoft Learn 現行文件撰寫。

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


廣告