大規模な Windows コンポーネント ストア (WinSxS) ディレクトリによって発生するディスク領域の問題に対処する方法

この記事では、大規模な Windows コンポーネント ストア (WinSxS) ディレクトリによって発生するディスク領域の問題を解決するための解決策について説明します。

適用対象: Windows 7 Service Pack 1、Windows Server 2008 R2 Service Pack 1
元の KB 番号: 2795190

現象

C:\Windows フォルダーのサイズを調べると、C:\Windows\winsxs ディレクトリで大量のディスク領域が使用されていることがわかります。

原因

Windows コンポーネント ストア (C:\Windows\winsxs) ディレクトリは、Windows インストール内のサービス操作中に使用されます。 サービス操作には、Windows Update、Service Pack、修正プログラムのインストールが含まれますが、これらに限定されません。

コンポーネント ストアには、Windows のインストールに必要なすべてのファイルが含まれています。 また、これらのファイルに対する更新は、更新プログラムがインストールされるとコンポーネント ストア内にも保持されます。 これにより、インストールに追加される更新プログラム、機能、またはロールが増えるにつれて、コンポーネント ストアが時間の経過とともに拡大します。 コンポーネント ストアは、それ自体と他の Windows ディレクトリ間の NTFS ハード リンクを使用して、Windows プラットフォームの堅牢性を高めます。

Windows エクスプローラー シェルがハード リンクをアカウント化する方法により、コンポーネント ストアには大きなディレクトリ サイズが表示されます。 Windows シェルは、ハード リンクへの各参照を、ファイルが存在する各ディレクトリのファイルの 1 つのインスタンスとしてカウントします。 たとえば、advapi32.dll という名前のファイルが 700 KB で、コンポーネント ストアと \Windows\system32 ディレクトリに含まれている場合、Windows エクスプローラーは、ファイルが 1,400 KB のハード ディスク領域を消費することを不正確に報告します。

解決方法

NTFS ハード リンクのため、コンポーネント ストアはシステム ボリューム以外のボリュームに存在できません。 コンポーネント ストアを移動しようとすると、Windows 更新プログラム、サービス パック、ロール、または機能を正しくインストールできなくなります。 また、コンポーネント ストアからファイルを手動で削除または削除することはお勧めしません。

Windows インストールのコンポーネント ストア ディレクトリのサイズを小さくするには、Service Pack のインストールを永続的にし、Service Pack ファイルから使用済み領域を再利用することができます。 ただし、サービス パックのインストールを永続的にした場合、サービス パックは取り外し可能ではありません。

Windows インストールから Service Pack ファイルを削除するには、次のインボックス ユーティリティを使用します。

  • Windows Server 2008 Service Pack 2 がインストールされている: Compcln.exe
  • Windows 7 Service Pack 1 または Windows Server 2008 R2 Service Pack 1 がインストールされました: DISM /online /Cleanup-Image /SpSuperseded またはディスク クリーンアップ ウィザード (cleanmgr.exe)

また、システムで削除イベントを強制することで、Windows Server 2008 のインストールで清掃をプロアクティブに実行することもできます。 清掃は、不要なシステム バイナリをインストールから削除し、Windows がディスク領域を解放できるようにします。 Windows インストールでアンインストール イベントを発行するには、まだインストールされていない不要なシステム コンポーネントを追加および削除してから、Windows インストールを再起動します。 清掃は、オペレーティング システムの次の再起動中に実行されます。

注:

清掃は、Windows 7 および Windows Server 2008 R2 のインストールで自動的に実行されます。

詳細

システム上の追加のディスク領域を解放するには、次の手順に従います。

  1. [ スタート] を選択し、[ プログラムとファイルの検索 ] テキスト ボックスに「 ディスク クリーンアップ」と入力します。

  2. [ ディスク クリーンアップ ] アイコンをクリックし、ディスク クリーンアップ ツールを実行して、構成に基づいて削除できるファイルを決定します。

システム ボリュームの領域を節約するその他の方法は次のとおりです。

  • ページング ファイルをシステム上の別のボリュームに移動します。
  • システムで休止状態を無効にします。
  • システム上の別のボリューム上のメモリ ダンプ ファイルをキャプチャするには、専用ダンプ ファイル オプションを使用します。
  • ユーザー・プロファイルおよびプログラム・ファイル・ディレクトリーをシステム上の別のボリュームにオフロードします。
  • クライアント のインストール時にシステム復元ポイントを無効にします。
  • ディスク クリーンアップ ウィザード (cleanmgr.exe) を使用して、すべての一時ディレクトリとフォルダーをクリーンアップします。
  • 未使用のアプリケーションまたはユーティリティをインストールからアンインストールします。

WinSxS フォルダーの詳細については、次を参照してください。

ディスクのシステム要件の詳細については、次を参照してください。

注:

  • Windows インストーラーを使用して製品をインストールすると、元の .msi データ ファイルの小さなバージョンが Windows インストーラー キャッシュ (%windir%\Installer) フォルダーに格納されます。 時間の経過とともに、このフォルダーが大きくなる可能性があります。 修正プログラム、累積的な更新プログラム、Service Pack のセットアップなど、インストールされた製品の追加の更新プログラムのインストールごとに、関連する .msp または .msi ファイルも Windows インストーラー キャッシュに格納されます。 時間の経過とともに、このフォルダーが大きくなる可能性があります。 このフォルダー内のファイルを削除するか、別のコンピューターのファイルに置き換えることをお勧めしません。 アプリケーションの更新は、このフォルダーに格納されているファイルで使用できる情報に依存します。 この情報がないと、更新プログラムはインストールを正しく実行できません。

  • %windir%\softwaredistribution\downloads フォルダーは、ダウンロードした更新プログラムを格納するためにWindows Updateによって使用されます。 通常、このフォルダーは Windows によって管理されるため、管理する必要はありません。 このフォルダーの一般的なサイズは、オペレーティング システムのバージョン、その時点で利用可能な更新プログラムなど、いくつかの要因によって決まります。 そのため、一般的なサイズの期待値を提供することは困難です。 このフォルダーで大量のディスク領域が使用されている場合は、まずシステムで使用可能なすべての更新プログラムをインストールしてから、コンピューターを再起動します。 サイズがまだ大きいままである場合にこの問題をトラブルシューティングするには、次の手順に従います。

    1. 管理者特権のコマンド プロンプトで、 コマンドを Net Stop WUAUSERV 実行します。
    2. %windir%\softwaredistribution\downloads フォルダーの内容を削除します。
    3. 管理者特権のコマンド プロンプトで、次のコマンドを Net Start WUAUSERV 実行します。

データ収集

Microsoft サポートの支援が必要な場合は、「展開関連の問題について TSS を使用して情報を収集する」に記載している手順に従って情報を収集することをお勧めします。