Winsxsフォルダーの説明

過去数日でTreeSizeのようなディスクスペースアナライザーを実行したWindowsユーザーは、WindowsディレクトリのWinsxsフォルダーに初めて出会った可能性があります。

通常、Windows VistaおよびWindows 7では、フォルダーのサイズは約5〜8ギガバイトですが、最大16ギガバイトまでのより大きなフォルダーのレポートもあります。

特に、最近Windows 7に切り替えたWindows XPユーザーは、フォルダーのサイズが数メガバイトからギガバイトに増加した理由を自問したかもしれません。

インターネット検索エンジンとメッセージボードには、フォルダーに関する質問がいっぱいです。多くのユーザーは、Winsxsフォルダーを削除しても安全かどうか、オペレーティングシステムのバックアップに含める必要があるかどうか、または他のフォルダーと比べて非常に大きなサイズである理由を知りたいと考えていますWindowsフォルダー。

winsxs

時間を振り返ることが重要です。 Windows 9xに戻ると、オペレーティングシステムにはダイナミックリンクライブラリ、より正確には同じdllの異なるバージョンの問題がありました。 dllの複数のバージョンを保存する方法がなかったため、非互換性やその他の問題が発生しました。

その後、MicrosoftはWindows MEで、オペレーティングシステムに同じ名前を使用して複数のdllバージョンを保存するオプションを追加し始めました。 このテクノロジがVistaおよびWindows 7ユーザーが今日経験しているものに変わったのは、Windows Vistaになってからです。

Windowsエクスプローラーでフォルダーを開くと、各フォルダーに少なくとも1つのファイルが含まれているが、多くの場合複数のファイルが含まれている巨大なフォルダーリストがあります。 同じ名前で始まるフォルダーは同じdllの異なるバージョンをホストしますが、同じダイナミックリンクライブラリの異なるバージョンをホストするフォルダーが5つ以上ある場合があります。

winsxsフォルダー

Winsxsは、Windows Side by Sideの略で、オペレーティングシステムの異なるバージョンで同じファイルをホストするという概念を指します。

バックアップフォルダーは、Winsxsフォルダーで最大のフォルダーとして表示され、その後にnaturallanguage6フォルダーとマニフェストが続きます。

Jeff HughによるTechnetブログ投稿では、INFで記述されたOSからWindows Vistaのコンポーネント化への移行について説明しています。

オペレーティングシステムのすべてのコンポーネントはWinSxSフォルダーにあります。実際、この場所をコンポーネントストアと呼びます。 各コンポーネントには、バージョン、言語、およびビルド対象のプロセッサアーキテクチャを含む一意の名前があります。 WinSxSフォルダーは、システム上でコンポーネントが検出される唯一の場所です。システムに表示されるファイルの他のすべてのインスタンスは、コンポーネントストアからのハードリンクによって「投影」されます。 最後のポイントを繰り返します。OS内の各ファイルの各バージョンのインスタンス(または完全なデータコピー)は1つだけで、そのインスタンスはWinSxSフォルダーにあります。 その観点から見ると、WinSxSフォルダーは実際にはOS全体であり、ダウンレベルのオペレーティングシステムでは「フラット」と呼ばれます。 これは、システムファイルチェッカー(SFC)などの操作を実行するとき、または追加の機能と役割をインストールするときに、メディアのプロンプトが表示されなくなる理由も説明します。

ジェフの投稿は、winsxsフォルダー内のファイルを削除しても安全かどうかという質問に対する答えを示しています。要するに、そうではありません。

そのフォルダのファイルサイズを安全に縮小する唯一のオプションは、不要になったソフトウェアをオペレーティングシステムから削除することですが、それでもファイルサイズが大幅に低下することはありません。

WinSxSフォルダーのサイズを安全に削減する唯一の方法は、システムが実行できる一連のアクションを削減することです。これを行う最も簡単な方法は、コンポーネントを最初にインストールしたパッケージを削除することです。 これは、システム上の古いバージョンのパッケージをアンインストールすることで実行できます。 Service Pack 1には、VSP1CLN.EXEと呼ばれるバイナリが含まれています。これは、システム上でService Packパッケージを永続的(リムーバブルではない)にし、すべての置き換えられたコンポーネントのRTMバージョンを削除するツールです。 これは、Service Packを永続的にすることで、RTMバージョンが不要になることを保証できるためです。

フォルダはそのままにしておくのが最善です。 Windows Vistaユーザーは、サードパーティのアプリケーションWinsxsLiteを実行することにより、Winsxsフォルダーのサイズを縮小できる場合があります

WinsxsLiteは、Vistaでwinsxsのサイズを削減するためのツールとして意図されています。

WinsxsLiteは2つのフェーズに分かれています。

最初のフェーズでは、プログラムファイルとWindowsフォルダーでファイルを検索し、

winsxsフォルダー内のファイルとまったく同じです。

2番目のフェーズでは、winsxsの各ファイルのすべての古いバージョンが置き換えられます。

最新バージョンのファイルへのハードリンク付き。

そのため、たとえば16種類のバージョンがあるように見えます

特定のファイルですが、実際には、指すデータオブジェクトは1つだけです

16個のディレクトリエントリ。

さらに、未使用のローカライズされたファイルを置き換えることにより、それらを削除することができます

他の言語の対応するファイルへのハードリンク付き。

注:両方のフェーズはオプションです。

注:Vista SP1がインストールされている場合は、vsp1cln.exeが実行されていることを確認してください。

WinsxsLiteを実行する前にシステムバックアップを作成することを強くお勧めします。これは、バックアップによってのみ元に戻すことができるWindowsシステムパーティションにソフトウェアが不可逆的な変更を加えることを考慮しています。

プログラムの最新バージョンは、Google CodeプロジェクトのWebサイトでいつでも入手できます。 このサイトはRapidshareのダウンロード場所にリンクしているため、サーバーに最新のファイルをアップロードすることもできます。 以下の20Kツールをダウンロードできます。WinsxsLite1.86

Windows Vistaとのみ互換性があり、Windows 7とは互換性がないことに注意してください。

さらに、Service PackがインストールされたWindows Vistaユーザーは、VSP1CLNコマンドラインツールを実行して、Service Packのインストール後に不要になったファイルを削除できます。 これらのファイルは、VistaでSPをアンインストールするために必要であることに注意してください。

Winsxsフォルダーのサイズを小さくするための追加のヒントはありますか? コメントでそれらについて教えてください。

更新 :最近の情報は、Winsxsフォルダーが実際にシステムによって報告されているほど大きくない可能性があることを示しています。その主な理由は、フォルダー内のファイルの多くがシステム上の他のファイルを指すハードリンクであるためです。

「Windows SxSディレクトリは、すべてのシステムコンポーネントの「インストールとサービスの状態」を表します。 しかし、実際には、組み込みツール(DIRおよびExplorer)を使用して使用ディスク容量を測定する場合に表示されるほど多くのディスク容量を消費しません。 ディレクトリで実際にどのくらいのスペースが消費されているかを知るのが難しいのは、間違いなく公正な点です!

実際には、WinSxSディレクトリ内のほぼすべてのファイルは、システム上の他の場所にある物理ファイルへの「ハードリンク」です。つまり、ファイルは実際にはこのディレクトリにはありません。 たとえば、WinSxSにはadvapi32.dllというファイルがあり、> 700Kを占有しますが、報告されるのはWindows \ System32にある実際のファイルへのハードリンクであり、次の場合に2回(またはそれ以上)カウントされますWindows Explorerから個々のディレクトリを見るだけです。」

それについての詳細は、Engineering Windows 7ブログで入手できます。