WinSxSフォルダは見た目ほど大きく、削除してよいか
Cドライブを整理していると、C:\Windows\WinSxSが数GB、ときにはProgram Files全体より大きく見えることがあります。Windowsフォルダの中にあり、削除に抵抗するので、触ってよいかを聞かれます。触れますが、Windows自身のツールを通してだけです。その前に、その数字のどれだけが実体かを知る必要があります。
大きく見える理由
WinSxSはコンポーネントストアです。Windowsはここにコンポーネントを置き、失敗した更新のあとのロールバックと、壊れたシステムファイルの修復はこれに頼ります。Microsoftの説明は、大きく見える理由を扱っています。多くのファイルはSystem32とWinSxSの両方にあるように見えますが、ディスク上のコピーは1つで、もう一方はハードリンクです。エクスプローラーや、フォルダサイズを足し上げるほかのツールはハードリンクを考慮しないので、同じデータが2回数えられます。
先に実際のオーバーヘッドを測る
コマンドプロンプトを管理者として開き、次を実行します。
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
出力の行を分けて読みます。
- Windows Explorer Reported Size of Component Store: エクスプローラーが計算するサイズ。ハードリンクは考慮されていません。
- Actual Size of Component Store: ハードリンクを考慮したサイズ。Windowsと共有しているファイルはまだ含まれます。
- Shared with Windows: ほかの場所にも現れ、Windowsの動作に必要なファイル。オーバーヘッドではありません。
- Backups and Disabled FeaturesとCache and Temporary Data: 合わせたものがコンポーネントストアのオーバーヘッドで、クリーンアップが影響できる部分です。
- Component Store Cleanup Recommended: Yesなら、クリーンアップでオーバーヘッドが減る可能性が高いです。
Microsoftの例では、エクスプローラーは4.98GBと報告し、実際のオーバーヘッドは約507MBです。大半が共有ファイルである数字に午後を使わないよう、クリーンアップの前に測ります。
手で削除しない
Microsoftの警告は明確です。WinSxSからファイルを消す、またはフォルダごと消すと、PCが起動できなくなり、更新もインストールできなくなることがあります。重要なシステムファイルの一部は、そこにしかないからです。削除を強制するためにTrustedInstallerから所有権を取っても、同じ結果になります。
DISMでクリーンアップする
Windowsはすでにスケジュールでクリーンアップしています。StartComponentCleanupタスクはPCがアイドルのときに動き、更新されたコンポーネントのインストールから少なくとも30日待ってから前の版を消し、1時間で止まります。今すぐ行うには、次を実行します。
Dism.exe /Online /Cleanup-Image /StartComponentCleanup
Microsoftのクリーンアップのガイドは、スケジュールタスクとの違いを説明しています。更新されたコンポーネントの以前の版はすぐ削除され、30日の猶予も1時間の制限もありません。
/ResetBaseを足すと、さらに進みます。
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
すべてのコンポーネントの、置き換えられた版をすべて消します。そのあと、すでにインストールされている更新はアンインストールできなくなります。あとからインストールする更新には影響しません。戻る容量は、上の2つのオーバーヘッドの行に依存し、決まった数字ではありません。大きな更新の直後で、まだ安定しているか分からないうちは、このスイッチを外したままにします。
| コマンド | 消すもの | インストール済みの更新をアンインストールできるか |
|---|---|---|
/StartComponentCleanup |
更新されたコンポーネントの、置き換えられた版 | 一部。消された以前の版は、もうロールバックできない |
/StartComponentCleanup /ResetBase |
置き換えられた版のすべて | できない |
インストール済みの更新をすべて恒久的に外せなくするのは/ResetBaseだけです。通常の/StartComponentCleanupは以前のコンポーネント版をすぐ消すので、その特定の更新はロールバックの道を失います。
コマンドを使わない場合
ディスククリーンアップで「システムファイルのクリーンアップ」を選び、「Windows Updateのクリーンアップ」を選びます。Microsoftのガイドは、これもコンポーネントストアを減らすと書いています。どちらの経路でも、あとでもう一度分析して比べます。エクスプローラーが表示するサイズより正確です。ほかの容量を調べ続けるなら、いっぱいのCドライブを整理するとWindowsのキャッシュの整理へ進みます。システム全体の一時フォルダとWindows Installerのキャッシュは、一時フォルダの整理とWindows Installerフォルダを見てください。
よくある質問
WinSxSフォルダは削除できますか?
できません。Microsoftは、WinSxSからファイルを消すとWindowsが起動または更新できなくなることがあると警告しています。代わりにDISMのクリーンアップを使います。
ディスクの変化よりWinSxSが大きく見えるのはなぜですか?
多くのファイルはSystem32にも現れます。エクスプローラーは両方を数え、ディスク上は1つです。実際のサイズはDISM /Online /Cleanup-Image /AnalyzeComponentStoreを使います。
/ResetBaseは何を失いますか?
そのあと、インストール済みの更新はどれもアンインストールできなくなります。あとからインストールする更新には影響しません。
コマンドを使わずに整理するには?
ディスククリーンアップの「システムファイルのクリーンアップ」にある「Windows Updateのクリーンアップ」もコンポーネントストアを減らします。あとでもう一度測ってください。