こんにちは、阿久津です。Windows XPから、複数のバージョンを持つコンポーネントのコンフリクト(衝突)を避ける仕組みとして、「Side-by-side Assemblies(WinSxS)」が加わっています。起動時にマニフェスト(拡張子「.manifest」)と呼ばれるコンポーネントの情報ファイルを参照するタイプのソフトウェアは、「分離アプリケーション」と呼び、現行のWindows 8.1でもその仕組みは引き継がれてきました。
各コンポーネントは「%SystemRoot%\WinSxS(コンポーネントストア)」フォルダーに格納されますが、以前から問題視されてきたのは、そのサイズです。筆者のメインマシン(Windows 8.1)で確認したところ、フォルダー数は約16,000にも及び、ファイルサイズは約6GB。Windows 8.1には、このコンポーネントストアフォルダーを自動的に整理するタスクが組み込まれているため、さほど肥大化していません(図01~02)。
図02 タスクスケジューラの「\Microsoft\Windows\Servicing」に登録されている「StartComponentCleanup」。コンポーネントストアフォルダーのクリーンアップを実行します |
しかし、以前のWindowsは延々と肥大化する傾向があるため、WinSxSフォルダーのクリーンアップを求めるユーザーも少なくありませんでした。コンポーネントストアフォルダーは前述したコンフリクトを避けるための仕組みであり、基本的に削除してはいけません。しかし、イメージバックアップの作成前など、一時的にクリーンアップしたい場合もあります。そこで今回はコマンドラインからコンポーネントストアをクリーンアップするチューニングをお送りしましょう。
コンポーネントストアフォルダーを調査する
1. 管理者権限でコマンドプロンプトを起動します。
2. 「Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore」を実行します。
3. コンポーネントストアフォルダーの調査結果を確認します。
これでコンポーネントストアフォルダーの概要が示されました。今回の例では「(同フォルダーの)実際のサイズ」は「6.04GB」、同フォルダーに対するクリーンアップが「推奨」されていることが確認できました。環境によってはコンピューターの再起動を求められますので、その際は指示に従ってください(図03~05)。
コンポーネントストアフォルダーのクリーンアップは2種類の方法があります。まずはGUIベースで操作する簡単な方法から紹介しましょう。
コンポーネントストアフォルダーをクリーンアップする その1
1. タスクスケジューラを起動します。
2. タスクスケジューラライブラリ\Microsoft\Windows\Servicingと展開します。
3. タスク「StartComponentCleanup」を実行します。
これでコンポーネントストアフォルダーの手動クリーンアップが実行できました(図06~09)。続いて、もうひとつの方法を紹介します。
コンポーネントストアフォルダーをクリーンアップする その2
1. 管理者権限でコマンドプロンプトを起動します。
2. 「Dism.exe /Online /Cleanup-Image /StartComponentCleanup」を実行します。
3. コマンドプロンプトを閉じます。
これでコマンドラインから、クリーンアップを実行できました(図10~11)。
いずれも実行内容は同じですが、後者のほうがエラーなど詳細なメッセージを確認できるため、利便性は向上します。結果を確認するには、「Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore」を再実行してください。今回の例では、「コンポーネントストアフォルダーの実際のサイズ」が「3.63GB」と約2.5GBも減り、クリーンアップ推奨が解除されました(図12)。
図12 コマンドプロンプトに「Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore」と入力して、[Enter]キーを押してください。これでクリーニング結果が確認できます |
問題はコンポーネントストアが破損しているケースです。Windows Update経由で適用する更新プログラムの導入タイミングによって、コンポーネントストアが破損することがあります。筆者もあまり経験はありませんが、Windows 8.1 Updateを適用した実験用環境は、このケースに該当しました。
その際は「Dism.exe /Online /Cleanup-Image /ScanHealth」でコンポーネントストアの健康状態を確認し、「Dism.exe /Online /Cleanup-Image /RestoreHealth」でストアの修復を実行してください。Windowsイメージファイルの指定は必要ありません(図13~14)。
それでは、また次号でお目にかかりましょう。
阿久津良和(Cactus)