WinSxSフォルダをいじってみてはいかがでしょうか? ええ、このフォルダがどんどん大きくなっていくのって、ちょっと変ですよね。これは通常、Windowsがアップデート後も、ロールバックしたい場合に備えて古いバージョンのシステムファイルを保持しているためです。多くの人は気づいていませんが、そこからファイルを直接削除するのは危険なだけでなく、システムを完全に壊してしまう可能性があります。しかし同時に、混乱を招かずにこの巨大なファイルを縮小する方法もあります。このガイドでは、このフォルダを整理するための実用的で少し面倒な方法をいくつか紹介します。そうすれば、ディスクスペースが古いWindowsファイルに囚われることはありません。やみくもにハッキングするのではなく、クリーンアップする作業だと考えてください。結局のところ、目的は安全にスペースを解放することであり、ひょっとすると、アップデートによる肥大化を軽減できるかもしれません。
Windows 10 で WinSxS フォルダーの実際のサイズを確認する方法
多くの人はファイルエクスプローラーでC:\Windows\WinSxSを覗き込むと、巨大な数字が表示されますが、これは少し誤解を招きます。Windowsエクスプローラーや一部のサードパーティ製ファイルマネージャーは、ハードリンクを完全なコピーとしてカウントするため、実際よりも大きく見えるのです。そのため、正確な分析にはDISMツールの使用をお勧めします。DISMはこのような用途に特化しています。
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
これを実行すると、報告されたサイズ、回収可能な領域、そして解放可能な領域といった重要な情報が、簡単なコマンドですべて出力されます。ある設定ではサイズが8.44GB(参照ファイルと残存ファイルを含む)と表示されるかもしれませんが、ハードリンクの影響で、ディスク上の実際のサイズはおそらく8.15GB程度でしょう。実際のディスク上のサイズを知るには、duなどのsysinternalsツールを使うこともできます。このツールは、ハードリンクを無視してディスク容量の正確な使用量を報告します。
WinSxS フォルダーを安全にクリーンアップする方法は?
ここからが少しややこしいところです。WindowsにはDISMという便利なコマンドがあり、システムの安定性を損なうことなくコンポーネントストアを整理できます。まずは、以下の手順で始めましょう。
Dism.exe /Online /Cleanup-Image /StartComponentCleanup
これにより、Windowsが安全性とロールバックオプションのために保持している古いバージョンのファイル(置き換えられたファイル)が削除されます。バックアップを削除するようなものですが、Windowsはこれらをすべて管理しやすい状態に保ちます。
その後、解放されたスペースの量を確認します。
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
私のマシンでは、これで通常2~3GBほど節約できました。悪くないですね。さらに古いバージョンをすべて削除したい場合は、新しいWindowsで次のコマンドを実行してください。
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
こちらはより強力で、以前のコンポーネントバージョンをすべて削除し、最新バージョンのみを残します。ただし、注意が必要です。この操作を行うと、古いアップデートをアンインストールしたり、以前のアップデートにロールバックしたりできなくなります。いわば元に戻せない状態になるので、自信がある場合のみ実行してください。
もう一つの簡単なヒント:ディスククリーンアップツールを使うことです。管理者としてcleanmgrを実行し、システムディスクを選択して「システムファイルのクリーンアップ」をクリックし、「Windows Updateのクリーンアップ」にチェックを入れます。これにより、バックグラウンドでディスクスペースを消費している更新ファイルが削除されます。
Windowsは、タスクスケジューラ(\Microsoft\Windows\Servicing)で、約1ヶ月ごとにStartComponentCleanupを自動実行するバックグラウンドタスクをスケジュールします。手動で実行する場合は、次のコマンドを使用します。
schtasks.exe /Run /TN "\Microsoft\Windows\Servicing\StartComponentCleanup"
これは、Windows が独自に実行しようとしているクリーンアップを強制するようなものです。
使用されていない役割と機能を削除するとどうなるでしょうか?
さらに空き容量を増やしたい場合は、使用していないWindowsの機能や役割を削除すると効果的です。例えば、Windows Serverでは次のコマンドを実行できます。
Uninstall-WindowsFeature
しかし、Windows 10ではネイティブでは利用できません。代わりに、DISMを使用して機能を無効化します。
DISM.exe /Online /Disable-Feature /Featurename:TelnetClient /Remove
このツールは、 WinSxSから機能のファイルを削除し、不要なファイルを削減します。ただし、依存関係のクリーンアップや不要なファイルの削除は行いません。つまり、これは手動によるファイル削減ツールであり、徹底的なクリーンアップではありません。また、この機能の目的を本当に理解している場合のみ使用してください。そうでない場合、問題が発生してしまう可能性があります。
WinSxS で NTFS 圧縮を有効にする (勇気があるなら)
これは最後の手段と言えるでしょう。すでに可能な限りクリーンアップ済みであれば、NTFS圧縮でフォルダを圧縮してみるのも良いでしょう。完璧ではありませんが、Windowsは圧縮されたシステムファイルでも問題なく動作します。特にSSDなど、容量節約が重要な環境では、サイズを縮小するのに役立ちます。
注意:まずはシステムをバックアップしてください。権限の変更やシステムフォルダの圧縮は、注意しないと問題を引き起こす可能性があります。大まかな手順は以下のとおりです。
- 管理者コマンドプロンプトを開きます。
- 競合を防ぐため、 Windows InstallerおよびTrustedInstallerサービスを停止します。
sc stop msiserver sc stop TrustedInstaller sc config msiserver start= disabled sc config TrustedInstaller start= disabled - 念のため、現在の ACL (権限) をバックアップします。
icacls "%WINDIR%\WinSxS" /save "%WINDIR%\WinSxS_NTFS.acl" /t - フォルダーの所有権を取得します。
takeown /f "%WINDIR%\WinSxS" /r - ユーザーにフルコントロール権限を付与します。
icacls "%WINDIR%\WinSxS" /grant "%USERDOMAIN%\%USERNAME%":(F) /t - NTFS 圧縮を適用します。
compact /s:"%WINDIR%\WinSxS" /c /a /i * - 次の後に所有権と権限を復元します:
- 所有権はTrustedInstallerに戻ります:
icacls "%WINDIR%\WinSxS" /setowner "NT SERVICE\TrustedInstaller" /t - 元の ACL:
icacls "%WINDIR%" /restore "%WINDIR%\WinSxS_NTFS.acl"
- 所有権はTrustedInstallerに戻ります:
- サービスを再度開始します。
sc config msiserver start= demand sc config TrustedInstaller start= demand
これらすべてを実行した後、サイズを再度確認してください。性能の良いマシンであれば、これでサイズがかなり削減されます。例えば、9.4GBから6.5GB程度までです。ただし、Windowsはファイルを「オンザフライ」で解凍するため、CPUのオーバーヘッドが増加することに注意してください。つまり、トレードオフです。
現実的に考えると、これらの方法は完璧ではなく、いくつか試してみて、どれがうまくいくかを見極める必要があるかもしれません。ただし、システムファイルへの変更は常にリスクを伴うため、回復手順に問題がないと確信が持てない限り、全力で取り組むのは避けてください。
まとめ
- DISMを使用してコンポーネントストアを分析およびクリーンアップする
- クリーンアップコマンド後のスペース節約を確認する
- DISM または PowerShell を使用して未使用の機能を削除する (サーバーのみ)
- 最後の手段として、WinSxS を NTFS 圧縮で圧縮する
- 特に権限を変更する際は、大幅な変更を行う前に必ずバックアップを取ってください。
まとめ
WinSxSフォルダのサイズを抑えるのは簡単ではありませんが、根気強く適切なコマンドを使えば、システムを壊すことなく実現できます。数ギガバイト以上も小さくなっていくのを見ると、まるで散らかったものとの戦いにおける小さな勝利のようです。ただし、まずはバックアップを取り、自信のない目標は立てないようにしましょう。これが良い出発点になれば幸いです。誰かのギガバイト節約の助けになれば幸いです。