Windows10のWinSxSフォルダーの説明

ほとんどの人は、Windows 10/8/7のWinSxSフォルダーに気づき、そのサイズに驚いたかもしれません。持っていない人のために、フォルダはC:\ Windows \ Winsxsにあり、なんとサイズがあります!鉱山はほぼ5GBで、約6000のフォルダーと25000のファイルがあり、Windowsフォルダーのほぼ40%を占めています。このWinsxsフォルダーのサイズはXPで、約25〜50MBです。Windows 10、Windows 8、Windows 7、およびWindows Vistaでのその大きなサイズは、多くの人に興味をそそられます!下の画像を確認してください。

winsxs-folder-windows

では、Windows 10、Windows 8.1、Windows8、Windows 7、およびWindows VistaのこのWinsxsフォルダーの謎は何ですか?この投稿でそう見つけましょう。

WinSxSフォルダーには、dll、exe、およびその他のシステムファイルの複数のコピーが格納され、互換性の問題なしに複数のアプリケーションをWindowsで実行できます。内部を閲覧すると、それぞれが同じ名前の重複ファイルがたくさんあるように見えます。これらは実際には、保存されている同じファイルの異なるバージョンです。プログラムが異なれば、必要なバージョンも異なる可能性があるためです。

WinSxSフォルダーWindows10とは

つまり、「Windows Side By Side」の略であるWinsxsは、 Windowsのネイティブアセンブリキャッシュです。複数のアプリケーションによって作成されているライブラリは、そこに格納されます。この機能は、Windows MEで最初に導入され、Windows9xを悩ませていたいわゆる「dllhell」問題に対するMicrosoftのソリューションと見なされていました。

Winsxsでは、下の画像に示されているように、「バックアップ」フォルダーが最大です。

WinSxSのサブフォルダー

繰り返しになりますが、下の画像に示されているように、Winsxsフォルダーでは、「その他」のファイルタイプがスペースの大部分を占めています。これらは主に、.imd、.ngr、.csd、.dll、.dll.mui、.exeなどの他のファイルタイプで構成されています。

WinSxSのファイルタイプ

Windows 7以降では、「dllcache」フォルダーはなく、システムが(XPのように)すべてのソースモジュールをキャッシュする「i386」フォルダーも見つかりません。サイドバイサイドアプリケーションの共有コンポーネントを格納するのは、このWinSxSフォルダーです。これらのファイルは、同じアセンブリまたはアプリケーションの複数のバージョンにすることができます。すべてのサイドバイサイドアセンブリには、固有のアイデンティティがあります。アセンブリIDの属性の1つは、そのバージョンです。

「サイドバイサイドアセンブリは、オペレーティングシステムによって、命名、バインド、バージョン管理、展開、および構成の基本単位として使用されます。Winsxsフォルダーには、すべてのマニフェスト、オプションのコンポーネント、およびサードパーティのWin32ファイルが含まれています」とMicrosoftは述べています。

しかし、なぜこれほど多くのサブフォルダーがあり 、同じdll、exe、またはその他のファイルの非常に多くの異なるバージョンを保持しているのでしょうか。

前述のように、Windowsは古いdllとライブラリコンポーネントをWinSxSフォルダーに保存します。このファイルの新しいバージョンがOSの一部であるが、特定のアプリケーションを実行するために特定の古いバージョンが必要な場合は、W inSxSフォルダーの古いバージョンが使用され、新しいバージョンは現在の場所に残ります。それを必要とするかもしれない他のアプリケーション。

したがって、明らかに、このディレクトリを削除したり、別の場所に移動したりすることはできません。また、ここで何かを削除することはお勧めできません。そのような手順を実行すると、アプリケーションが機能しなくなったり、システムが破損したりする可能性があります。多くのアプリケーションがインストールされている場合は、ジャンボサイズのWinSxSフォルダーがあると予想できます。このWinSxsフォルダーは、システムボリューム以外のボリュームに配置することはできません。これは、NTFSハードリンクが原因です。フォルダを移動しようとすると、Windows Update、サービスパック、機能などが正しくインストールされない場合があります。

マニフェストやアセンブリなどのコンポーネントをWinSxSフォルダーから削除すると、問題が発生する可能性があります。各システムの反応は異なります。ある人にとってうまくいくかもしれないものが別の人を壊す可能性があります!たとえば、削除した可能性のある特定のアセンブリを必要とするプログラムをインストールした場合、そのプログラムは実行されません。Windowsの更新中または修正プログラムのインストール中に問題が発生する可能性があるため、フォルダーの圧縮も禁止です。

それをきれいにする最も安全な方法は、あなたが必要としないアプリケーションを単にアンインストールすることです。ただし、他のアプリケーション間で共有される可能性があるため、多くのアプリケーションがファイルをここに残しているため、これも絶対確実ではありません。そのため、未使用のdllが取り残される可能性は非常に高くなります。

Windowsを壊してしまう可能性があるため、WinsxsLiteなどのWinSxSクリーンアップツールの使用はお勧めしません。

また、新しいソフトウェアを試したり、頻繁にインストールおよびアンインストールしたりする場合は、互換性の問題なしに複数のアプリケーションを使用できるようにするために、Windowsがこれらのdllファイルの複数のコピーを保存するため、Winsxsのサイズが実際に大きいことに気付く場合があります。

WinSxsフォルダーのクリーンアップ

Windows 8.1では、DISM.exeの新しいコマンドラインオプション/ AnalyzeComponentStoreが導入されました。このコマンドを実行すると、WinSxSフォルダーが分析され、コンポーネントストアのクリーンアップが推奨されるかどうかがわかります。Windows10にも存在します

では/ 8.1 / 10のWindows 8と、オープンディスククリーンアップツールWinSxSをきれいにするために、Windows Updateのクリーンアップオプションを使用します。

マイクロソフトはでディスククリーンアップツールのWindows Updateのクリーンアップオプションを追加したアップデートリリースのWindows 7を

Windows Server 2008 R2のWinSxSを、新しい新しい更新プログラムでクリーンアップできるようになりました。

ディスクスペース解放するために検討できるその他のオプションは次のとおりです。ルーチンと極端なものがあります。

  1. ディスククリーンアップツールを実行する
  2. 未使用のアプリケーションをアンインストールする
  3. ページファイルを別のドライブに移動する
  4. 休止状態を無効にする
  5. 専用のダンプファイルオプションを使用して、システム上の別のボリューム上のメモリダンプファイルをキャプチャします。
  6. システムの復元ポイントを無効にする
  7. ユーザープロファイルとプログラムファイルのディレクトリをシステム上の別のボリュームにオフロードします。

TechNetブログからの更新1:以前のバージョンのWindows間の最大の変更点の1つは、INFで記述されたOSからコンポーネント化への移行でした。オペレーティングシステムのすべてのコンポーネントはWinSxSフォルダーにあります。実際、この場所をコンポーネントストアと呼びます。各コンポーネントには、そのコンポーネントが構築されたバージョン、言語、およびプロセッサアーキテクチャを含む一意の名前があります。 WinSxSフォルダーは、コンポーネントがシステム上で見つかる唯一の場所です。システム上に表示されるファイルの他のすべてのインスタンスは、コンポーネントストアからのハードリンクによって「投影」されます。

ストアが非常に大きくなる理由がわかったので、次の質問はおそらく、古いバージョンのコンポーネントを削除しない理由を尋ねることです。それに対する簡単な答えは信頼性です。コンポーネントストアは、システム上の他の情報とともに、プロジェクトに最適なコンポーネントのバージョンをいつでも決定できるようにします。つまり、セキュリティアップデートをアンインストールすると、システムに次に高いバージョンをインストールできます。「アンインストールの順序が正しくない」という問題は発生しなくなりました。また、オプション機能をインストールする場合は、コンポーネントのRTMバージョンを選択するだけでなく、システムで使用可能な最高のバージョンを確認します。

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

E7ブログからの更新2:オペレーティングシステムの「モジュール化」は、WindowsVistaのエンジニアリング目標でした。これは、インストール、サービス、および信頼性に関連するレガシーWindowsの多くの問題を解決するためでした。 Windows SxSディレクトリは、すべてのシステムコンポーネントの「インストールとサービスの状態」を表します。ただし、実際には、組み込みツール(DIRおよびExplorer)を使用して使用されているディスク容量を測定した場合に表示されるほど多くのディスク容量を消費しません。ディレクトリで消費されているスペースの量を知るのが難しいという事実は、公正な点です。 WinSxSディレクトリはオフラインサービスも可能にし、WindowsVista以降を「イメージングに対して安全」にします。

WinSxSディレクトリを削除しても大丈夫だと言っているブログや「地下」ツールがいくつかあります。インストール後にシステムから削除できることは確かです。システムが起動して正常に動作しているように見えます。 。ただし、上記のように、これは非常に悪い習慣です。確実にサービスを提供する機能、すべてのオペレーティングシステムコンポーネント、およびシステム上のオプションのコンポーネントを更新または構成する機能を削除するためです。Windowsは、最初にインストールされた場所にある物理ドライブ上のWinSxSディレクトリのみをサポートします。

結論

WinSxSフォルダーをそのままにします。

SysnativeフォルダーとCatroot&Catroot2フォルダーについてはこちらをご覧ください。

追加の読み取り:

  1. WindowsコンポーネントストアまたはWindowsのWinSxSを分析する
  2. WindowsでのWinSxSフォルダーのクリーンアップ
  3. WindowsのディスククリーンアップツールにWindowsUpdateクリーンアップオプションを追加する
  4. WindowsServer上のWinSxSディレクトリをクリーンアップします。
winsxs-folder-windows