Windows7または8でWinSXSフォルダーのサイズを縮小する方法

C:\ Windows \ WinSXSのWinSXSフォルダーは巨大であり、Windowsをインストールする時間が長くなるほど大きくなり続けます。このフォルダは、古いバージョンのシステムコンポーネントなど、時間の経過とともに不要なファイルを作成します。

このフォルダには、アンインストールされ、無効にされたWindowsコンポーネントのファイルも含まれています。Windowsコンポーネントがインストールされていない場合でも、WinSXSフォルダーに存在し、スペースを占有します。

WinSXSフォルダが大きくなりすぎる理由

WinSXSフォルダーには、すべてのWindowsシステムコンポーネントが含まれています。実際、Windowsの他の場所にあるコンポーネントファイルは、WinSXSフォルダーに含まれているファイルへのリンクにすぎません。WinSXSフォルダーには、すべてのオペレーティングシステムファイルが含まれています。

Windowsが更新プログラムをインストールすると、新しいWindowsコンポーネントがWinSXSフォルダーにドロップされ、古いコンポーネントがWinSXSフォルダーに保持されます。これは、インストールするWindows Updateごとに、WinSXSフォルダーのサイズが大きくなることを意味します。これにより、コントロールパネルからオペレーティングシステムの更新をアンインストールできます。これは、バグのある更新の場合に役立ちますが、これはめったに使用されない機能です。

関連:Windowsでハードディスクの空き容量を増やす7つの方法

Windows 7は、新しいWindows Service Packをインストールした後、Windowsが古いWindowsUpdateファイルをクリーンアップできるようにする機能を含めることでこれに対処しました。アイデアは、システムをサービスパックと一緒に定期的にクリーンアップできるというものでした。

ただし、Windows 7では、2010年にリリースされたサービスパックは1つ(Service Pack 1)のみでした。Microsoftは別のサービスパックをリリースする予定はありません。これは、3年以上の間、WindowsUpdateのアンインストールファイルがWindows7システム上に蓄積されており、簡単に削除できなかったことを意味します。

更新ファイルのクリーンアップ

この問題を修正するために、Microsoftは最近Windows8からWindows7に機能をバックポートしました。これはあまりファンファーレなしで行いました。これは、通常は新しい機能を追加しない、一般的なマイナーオペレーティングシステムアップデートで展開されました。

関連:Windowsシステムファイルによって使用されるハードドライブのスペースを解放する6つの方法

このような更新ファイルをクリーンアップするには、ディスククリーンアップウィザードを開きます(Windowsキーをタップし、[スタート]メニューに「ディスククリーンアップ」と入力して、Enterキーを押します)。「システムファイルのクリーンアップ」ボタンをクリックし、「Windows Updateのクリーンアップ」オプションを有効にして、「OK」をクリックします。Windows 7システムを数年間使用している場合は、数ギガバイトのスペースを解放できる可能性があります。

これを行った後で次に再起動するとき、Windowsは、ログインしてデスクトップを使用する前に、システムファイルをクリーンアップするのに数分かかります。

[ディスククリーンアップ]ウィンドウにこの機能が表示されない場合は、更新が遅れている可能性があります。WindowsUpdateから最新の更新プログラムをインストールしてください。

関連:Windowsがシステムタスクにタスクスケジューラを使用する方法

Windows 8および8.1には、これを自動的に行う組み込み機能が含まれています。実際、WindowsにはStartComponentCleanupのスケジュールされたタスクが含まれており、バックグラウンドで自動的に実行され、コンポーネントをインストールしてから30日後にコンポーネントをクリーンアップします。この30日間は、問題が発生した場合に更新をアンインストールする時間を与えます。

更新を手動でクリーンアップする場合は、Windows 7の場合と同様に、[ディスク使用量]ウィンドウの[Windows Updateクリーンアップ]オプションを使用することもできます(開くには、Windowsキーをタップし、「ディスククリーンアップ」と入力します。検索を実行し、表示される「不要なファイルを削除してディスク領域を解放する」ショートカットをクリックします。)

Windows 8.1にはより多くのオプションがあり、アンインストールされたコンポーネントの以前のバージョンをすべて強制的に削除できます。30日以上使用されていないコンポーネントも含まれます。これらのコマンドは、管理者特権のコマンドプロンプトで実行する必要があります。つまり、管理者としてコマンドプロンプトウィンドウを起動します。

たとえば、次のコマンドは、スケジュールされたタスクの30日間の猶予期間なしで、以前のバージョンのコンポーネントをすべてアンインストールします。

DISM.exe / online / Cleanup-Image / StartComponentCleanup

次のコマンドは、サービスパックのアンインストールに必要なファイルを削除します。次のコマンドを実行した後、現在インストールされているサービスパックをアンインストールすることはできません。

DISM.exe / online / Cleanup-Image / SPSuperseded

次のコマンドは、すべてのコンポーネントの古いバージョンをすべて削除します。これが完了すると、現在インストールされているサービスパックまたはアップデートをアンインストールできなくなります。

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

オンデマンドで機能を削除する

最新バージョンのWindowsでは、Windowsの機能をオンデマンドで有効または無効にできます。これらの機能のリストは、コントロールパネルからアクセスできる[Windowsの機能]ウィ​​ンドウにあります。

インストールしていない機能(つまり、このウィンドウでチェックされていない機能)でさえ、ハードドライブのWinSXSフォルダーに保存されます。それらをインストールすることを選択した場合、それらはWinSXSフォルダーから利用できるようになります。つまり、これらの機能をインストールするために、何もダウンロードしたり、Windowsインストールメディアを提供したりする必要はありません。

ただし、これらの機能はスペースを占有します。これは一般的なコンピューターでは問題になりませんが、ストレージの量が非常に少ないユーザーや、Windowsインストールを可能な限り最小のシステムファイルセットにスリム化するWindowsサーバー管理者は、これらのファイルをハードドライブから取り出したい場合があります。

このため、Windows 8には、これらのアンインストールされたコンポーネントをWinSXSフォルダーから完全に削除して、スペースを解放できる新しいオプションが追加されました。削除したコンポーネントを後でインストールすることを選択した場合、WindowsはMicrosoftからコンポーネントファイルをダウンロードするように要求します。

これを行うには、管理者としてコマンドプロンプトウィンドウを開きます。次のコマンドを使用して、使用可能な機能を確認します。

DISM.exe / Online / English / Get-Features / Format:Table

機能名とその状態の表が表示されます。

システムから機能を削除するには、次のコマンドを使用して、NAMEを削除する機能の名前に置き換えます。必要な機能名は上の表から取得できます。

DISM.exe / Online / Disable-Feature / featurename:NAME / Remove

関連:Windowsシステムファイルによって使用されるハードドライブのスペースを解放する6つの方法

/ Get-Featuresコマンドを再度実行すると、機能のステータスが「無効」ではなく「ペイロードが削除された状態で無効」になっていることがわかります。これにより、コンピュータのハードドライブのスペースを占有していないことがわかります。

Windowsシステムを可能な限りスリム化しようとしている場合は、Windowsのディスク領域を解放し、システムファイルによって使用される領域を減らす方法のリストを確認してください。