Windows 10で大きなWinSxSフォルダーを管理する方法

WinSxS-Windows 10

システムのディスク容量が減少した場合、サードパーティのユーティリティを使用すると、小さなファイルやファイルコレクションを一目で見つけることができます。ここで、WinSxSフォルダーを見つけることができます。サイズは約5〜10 GBで、多くのユーザーにとって、Windowsの世界ではブラックボックスのようなものです。

もちろん、WinSxSにインストールされているファイルが正確に何であり、なぜそれが非常に大きいのかという疑問が生じます。 Web検索やフォーラムには、このフォルダに関する質問がたくさんあります。 WinSxSの秘密とそれを管理する正しい方法をわかりやすく説明します。

WinSxSの説明

WinSxS(サイドバイサイド)は、Windowsオペレーティングシステムの「 DLL Hell 」問題を解決するために作成されました。簡単に言うと、プログラムがダイナミックリンクライブラリ(DLL)ファイルを変更して、同じDLLを使用する必要がある他のアプリケーションの重要な機能に影響を与える場合が含まれます。

たとえば、アプリにバージョン番号1.0.2のDLLが必要だとします。別のアプリがアセットを1.0.3などの別のバージョンに置き換えた場合、バージョン1.0.2に基づく以前のアプリがクラッシュし、互換性の問題が発生したり、ブルースクリーンの死が発生したりします。

WinSxSの発売

Windows XPは、コンポーネントストアの正しい開始を見ました。この場合、各コンポーネント(DLL、OCX、EXE)はWinSxSと呼ばれるディレクトリにあります。ソフトウェアおよびハードウェアパッケージによってインストールされたDLLのすべての異なるバージョンを保存し、要求に応じて正しいバージョンをロードしました。

では、アプリはどのバージョンのDLLを読み込む必要があるかをどのようにして知るのでしょうか。これが「 ファイルマニフェスト 」が重要な役割を果たす場所です。起動時にプログラムを管理する方法とDLLの正しいバージョンをオペレーティングシステムに通知する設定が含まれています。

各コンポーネントには、アーキテクチャ、言語、バージョン、プロセッサIDを含むことができる一意の名前のIDがあります。これらのコンポーネントの特定のバージョンは、パッケージにまとめられます。 Windows UpdateとDISMは、システムを最新の状態に保つために使用します。

Windows 10のWinsxsコンポーネントパッケージ

このタイムラインは、メインオペレーティングシステムの更新ごとにWinSxSが徐々に改善されていることを示しています。

Windowsオペレーティングシステムでのwinsxsの改善の歴史

WinSxSフォルダーと実際のリンクの役割

実際のリンクは、Windowsオペレーティングシステム全体で使用されます。 WinSxSに関しては、システム内でコンポーネントが存在する唯一の場所です。コンポーネントリポジトリの外部にあるファイルの他のすべてのインスタンスは、WinSxSフォルダーに密接にリンクされています。では、実際のリンクとは何でしょうか?

Microsoft Docsによると、ハードリンクは2つのファイルがディスク上の同じ場所を参照できるようにするファイルシステムオブジェクトです。これは、Windowsが追加のスペースを占有することなく、同じファイルの複数のコピーを保持できることを意味します。

Windowsを更新するたびに、完全に新しいバージョンのコンポーネントがリリースされ、実際のリンクを介してシステムに投影されます。最も古いものは、信頼性のためにコンポーネントアーカイブに残りますが、物理的な接続はありません。

fsutilコマンドを使用して、システムファイルの実際のリンクを確認できます。 Win + Xを押し、 [コマンドプロンプト(管理者)]を選択して、次のように入力します。

 fsutil hardlink list [system file path] 

たとえば、「audiosrv.dll」というシステムファイルの実際のリンクを確認するには、次のように入力します。

 fsutil hardlink list "C:WindowsSystem32audiosrv.dll" 

コマンドプロンプトのfsutilハードリンクリスト

WinSxSの重要性

コンポーネントストアは、Windowsのカスタマイズと更新に必要な機能をサポートする上で重要な役割を果たします。これらは次のとおりです。

  • 起動エラーまたは破損からシステムを復元する
  • オンデマンドでWindows機能を有効または無効にする
  • Windowsの異なるエディション間でシステムを移動する
  • 問題のあるアップデートをアンインストールする
  • Windows Updateを使用してコンポーネントの新しいバージョンをインストールするには

WinSxSフォルダーのサイズ

WinSxSには、PC上のハードウェアおよびソフトウェアとの互換性を維持するために必要なすべてのファイルが含まれています。 Windowsの最大の強みの1つは、古いハードウェアやアプリ実行できることです 。ただし、このレガシー互換性は、ディスク容量とバグの点で犠牲になります。

C:Windows WinSxSに移動し、右クリックして[ プロパティ ]を選択します 。このフォルダは、約7.3 GBのディスク容量を消費します。ただし、実際のサイズではありません。この理由は、ファイルエクスプローラーや他のサードパーティツールが考慮していない「実際のリンク」です。

実際のリンクへの各参照は、各場所のファイルの単一インスタンスとしてカウントされます。したがって、システムファイルがWinSxSとSystem32の両方のディレクトリにある場合、エクスプローラーはフォルダーのサイズを誤って2倍にします。

Windows 10でのwinsxsフォルダーサイズ

WinSxSの実際のサイズを確認する

Windowsコンポーネントストアの実際のサイズを確認するには、管理者特権のコマンドプロンプトウィンドウを開き、次のように入力します。

 Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore 

注: / AnalyzeComponentStoreオプションは、Windows 8以前では認識されません。

分析後、コンポーネントストアの実際のサイズは5.37 GBに減少します。この値は、WinSxSフォルダー内の実際のリンクを考慮に入れます。 Windowsと共有すると、物理リンクを含むファイルのサイズがわかります。 最後のクリーニングの日付は、最近完了したコンポーネントアーカイブのクリーニングの日付です。

Windows 10でコンポーネントストアのサイズを分析する

WinSxSフォルダーのサイズを縮小する方法

多くのユーザーは、WinSxSフォルダーから手動でファイルを削除できるかどうかを尋ねます。答えは大きいです。

Windowsに損傷を与える可能性が高く、重要なWindows Updateが正しくインストールされない可能性があります。 WinSxSフォルダーからファイルを削除できたとしても、どのアプリが機能しなくなるかはわかりません。

ただし、一部の統合ツールを使用して、WinSxSフォルダーのサイズ小さくすることができます。ディスククリーンアップ、DISMコマンドなどのツールを使用し、Functions on Demandを削除してWinSxSフォルダーをカットします。

ディスククリーニングツール

検索ボックスに「 ディスククリーンアップ」と入力し、[ ディスククリーン アップ]を選択します。このウィンドウで、[ システムファイルクリーンアップ ]ボタンをクリックします。これによりユーティリティが再起動し、すべてのクリーニングオプションへのアクセスがロック解除されます。インストールファイル、以前のバージョンのWindowsなどを削除できます。ディスククリーンアップツールは、Windows 10をクリーニングするための開始点です。

管理者モードのディスククリーニングツール

この詳細ガイドを読んで、 Windows 10をクリーンアップする最良の方法を見つけてください

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

Windowsでは、デフォルトのWindows機能をオンデマンドで有効または無効にできます。 Hyper V、Print to PDF、Windowsサブシステムfor Linux(WSL)などの便利な機能を追加できます。

選択を解除した機能はWinSxSフォルダーに残り、ディスク領域を占有します。ストレージ容量が少ないユーザーは、Windowsのインストールをできるだけ効率化したい場合があります。管理者特権のコマンドプロンプトウィンドウを開き、次のように入力します。

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

機能名とそのステータスのリストが表示されます

必要なリストのWindows機能

システムから関数を削除するには、次のように入力します

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

(「NAME」をリストに記載されている関数の名前に置き換えます)

DISMでWindows機能を削除する

/ Get-Featuresコマンドを再度実行すると、単に「 無効 」ではなく、「 ペイロードを削除して無効 」というステータスが表示されます。後で、削除したコンポーネントをインストールすることを選択した場合、Windowsはコンポーネントファイルを再度ダウンロードするように求めます。

DISMコンポーネントのクリーニング

Windows 8 / 8.1には、システムが使用されていないときにコンポーネントストアを自動的にクリーンアップする統合機能が含まれています。 タスクスケジューラを開き、 [ Microsoft]> [Windows]> [Maintenance]に移動します 。アイテムを右クリックして、[ 実行 ]をクリックします。

スケジューラーのstartcomponentcleanupパラメーター

タスクは、更新されたコンポーネントのインストール後、前のバージョンのコンポーネントをアンインストールする前に、少なくとも30日間待機します。また、タスクは1時間タイムアウトし、すべてのファイルをクリーンアップできない場合があります。

DISM / Cleanup-Imageパラメーターを使用すると、コンポーネントの以前のバージョンを(30日の猶予期間なしで)すぐに削除でき、1時間のタイムアウト制限はありません。 コマンドプロンプト(管理者)を開き、 次のように入力します。

 DISM.exe /online /Cleanup-Image /StartComponentCleanup 

ResetBaseオプションを追加すると、各コンポーネントのすべての置き換えられたバージョンを削除できます。ただし、現在の更新プログラムをアンインストールすることはできません(欠陥がある場合でも)。

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

次のコマンドは、サービスパックのアンインストールに必要なすべてのバックアップコンポーネントを削除します。これは、特定のバージョンのWindows用の累積的な更新のコレクションです。

 DISM.exe /online /Cleanup-Image /SPSuperseded 

Windowsファイルを削除してディスク領域を解放する

WinSxSコンポーネントストアには、Windowsの日常の操作で果たす重要な役割があります。したがって、スペースの問題の解決策として、ファイルを削除したり、WinSxSフォルダーを移動したりしないでください。 Windowsの更新により、他のスペースピッグを見つけるために使用できる詳細なレポートおよびクリーニングツールが導入されました。

上記の手法に従うと、WinSxSフォルダーのサイズをわずかに小さくすることができます。この部分を読んで、 追加のディスク領域を解放するために削除できるWindowsファイルとフォルダーを見つけてください

記事全文を読む: Windows 10で大きなWinSxSフォルダーを管理する方法

(出典)

Facebookへのコメント