WinSxS資料夾跟裡面的檔案可以刪除嗎?

這陣子因為工作用的電腦磁碟容量快要爆炸了,
開始翻找各種可以刪除的東西,
就發現了C裡面有個容量很大的資料夾WINSXS,
就來研究一下到底能不能幫這個東西瘦身吧。

WinSxS是幹嘛的

WinSxS 資料夾位於 Windows 資料夾,位置應該會在 c:\Windows\WinSxS。
這是 Windows 元件存放區檔案的位置。 Windows 元件存放區是用來支援自訂和更新 Windows 所需的功能。
以下是如何使用 Windows 元件存放區檔案的一些範例:

  • 使用 Windows Update 來安裝新的元件版本。 這可讓系統保持安全並保持最新狀態。
  • 啟用或停用 Windows 功能。
  • 使用伺服器管理員新增角色或功能。
  • 在不同的 Windows 版本之間移動系統。
  • 從損毀或開機失敗的系統修復
  • 卸載有問題的更新
  • 使用並存元件執行程式

WinSxS的實際大小

當我們針對這個資料夾右鍵查看內容,沒意外會發現大小相當的大:

為什麼 WinSxS 資料夾太大? 這個常見問題的簡短回答是元件存放區 (WinSxS 資料夾) 包含組成 Windows 的所有元件,讓您可以操作您的系統。 這些元件會保留下來,以回復任何有問題的變更,或修復損毀的檔案。

針對作業系統檔案,可能會出現一個以上的檔案版本的複本儲存在作業系統上的多個位置,但通常只有一個檔案的實際複本。 其餘的複本只會藉由從元件存放區進行永久連結來「投射」。 「 硬連結 」是一種檔案系統物件,可讓兩個檔案參考磁片上的相同位置。 某些工具(例如檔案總管)會決定目錄大小,而不會考慮包含的檔案可能是硬式連結。 這可能會讓您認為 WinSxS 資料夾所佔用的磁碟空間比實際的還多。

上面這段看不懂沒關係,反正就是WinSxS實際大小跟你想像的可能有出入,想知道實際大小請輸入以下指令

開啟提升許可權的命令視窗,然後輸入:

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore


以上面這張圖為例,WinSxS資料夾大小似乎為11.11GB,但實際上的負荷只有4.17GB(實際上WinSxS的額外負荷為「備份和停用的功能」與「快取和暫存資料」兩者的總和)。

(備註一下: 我的每張圖片可能是在不同電腦與時間點截圖的)

瘦身WinSxS

首先根據微軟的官方說法,在執行中的 Windows 10 版本上縮減 WinSxS 資料夾大小的不同方式。

其中一個常見問題是:「我可以刪除 WinSxS 資料夾以重新取得一些磁碟空間嗎?」 簡單的說,答案是「不可以」

※警告※
刪除 WinSxS 資料夾中的檔案或刪除整個 WinSxS 資料夾,可能會對系統造成嚴重損害,而導致您的電腦無法開機,也無法進行更新。


BUT,這個BUT很重要,你可以利用Window內建的工具來減少WinSxS資料夾的大小

磁碟清理

先講第一種方式,也是最簡單的一種方式。

您可以使用「磁碟清理」來減少磁碟機上非必要檔案的數目,以利加快電腦的執行速度。此功能可刪除暫存檔案和系統檔案、清空資源回收筒,並移除您可能不再需要的各種其他項目。 清除更新的選項有助於縮減元件存放區的大小。
執行磁碟清理以刪除系統檔案
若要刪除系統檔案,請執行使用磁碟清理來刪除檔案中提供的步驟。

  1. 在工作列的搜尋方塊中,輸入磁碟清理,然後從結果清單中選取 [磁碟清理]。
  2. 選取您要清理的磁碟機,然後選取 [確定]。
  1. 在 [要刪除的檔案] 下方,選取要刪除的檔案類型。若要取得檔案類型的說明,請選取該檔案類型。
  1. 選取 [確定]。如果您需要釋放更多空間,也可以刪除系統檔案。在 [磁碟清理] 中,選取 [清理系統檔]。

工作排程器

StartComponentCleanup 工作建立於 Windows 8 中,可在系統處於未使用狀態時自動定期清除元件。此工作會設定為在作業系統觸發時自動執行。自動執行時,此工作會在更新的元件安裝之後等候至少 30 天,再將舊版的元件解除安裝。

如果您選擇執行此工作,此工作將會有 1 小時的逾時,而且可能不會完全清除所有檔案。

在工作排程器中執行 StartComponentCleanup 工作,以清除和壓縮元件

  1. 如果工作排程器未開啟,請啟動工作排程器。
  2. 展開主控台樹狀結構,並瀏覽至工作排程器程式庫\Microsoft\Windows\Servicing\StartComponentCleanup。
  3. 在 [選取的項目] 底下,按一下 執行

或是於命令視窗輸入以下指令

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

Dism.exe

Dism.exe 的 /Cleanup-Image 參數提供了更多選項給使用者,讓他們可進一步縮減 WinSxS 資料夾的大小。

如果想知道關於 DISM 的更多詳細操作指令可以參考此處

使用 /StartComponentCleanup 參數

在執行中的 Windows 10 版本上使用 Dism.exe 的 /StartComponentCleanup 參數,所產生的結果會類似於在工作排程器中執行 StartComponentCleanup 工作,差別在於,更新元件的舊有版本會立即刪除 (沒有 30 天的寬限期),且您不會有 1 小時的逾時限制。
在提升權限的命令提示字元中,輸入下列命令:

Dism.exe /online /Cleanup-Image /StartComponentCleanup

使用 /ResetBase 參數搭配 /StartComponentCleanup 參數

在執行中的 Windows 10 版本上使用 /ResetBase 參數搭配 DISM.exe 的 /StartComponentCleanup 參數,會從元件存放區中移除每個元件所有已取代的版本。
在提升權限的命令提示字元中,輸入下列命令:

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

※警告※
此命令完成後,就無法解除安裝所有現有的 Service Pack 和更新。 這並不會封鎖未來 Service Pack 或更新的解除安裝。

使用 /SPSuperseded 參數

若要減少 Service Pack 所使用的空間量,請在執行中的 Windows 10 版本上使用 Dism.exe 的 /SPSuperseded 參數,以移除將 Service Pack 解除安裝所需的任何備份元件。 Service Pack 是特定 Windows 版本的累積更新集合。

在提升權限的命令提示字元中,輸入下列命令:

Dism.exe /online /Cleanup-Image /SPSuperseded

※警告※
此命令完成後,就無法解除安裝 Service Pack。


以上就是關於WinSxS這個資料夾跟如何減少WinSxS於系統中負荷的方法了。

發佈留言