「Windows 10ミニTips」は各回の作成時点で最新のWindows 10環境を使用しています。

Dism.exeで直接クリーンアップを実行する

Windows XPの時代からMicrosoftは、カスタマイズや更新に必要な機能をサポートする「コンポーネントストア」という仕組みをOSに実装している。破損したシステムファイルの復元や、問題が発生した更新プログラムのアンインストールなどに用いられるため、OSの安定性を向上させる上で重要な存在だ。

コンポーネントストアの実体である「%SystemRoot&\WinSxS」フォルダー

問題はコンポーネントストアの容量だ。そこで、コンポーネントストア(WinSxS)フォルダーを、Dism.exeを使って手動クリーンアップしてみよう。

WinSxSフォルダーの実体は「%SystemRoot&\WinSxS」フォルダーだが、Windows 10 Insider Previewを選択しているデスクトップPCでプロパティダイアログを開くと、約6.25GBと示されている。だが、これは正しい数字ではない。詳細な数字を確認するには、管理者権限を持つコマンドプロンプト上で「Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore」を実行する。

テキストボックスに「cmd」と入力し、検索結果の「コマンドプロンプト」を右クリック/長押し。メニューの「管理者として実行」をクリック/タップ

こちらは仮想マシン上のWindows 10 バージョン1703。コンポーネントストアは約7.8GB

こちらは実機のWindows 10 Insider Preview。約6.66GBとなる

上図のように、環境によって数値は違うが、WinSxSフォルダーは基本的に自動メンテナンスされる。「タスクスケジューラ」の「タスクスケジューラライブラリ\Microsoft\Windows\Servicing」に登録された「StartComponentCleanup」が、コンポーネント更新30日後に不用になった古いコンポーネントを削除しているのだ。

検索ボックスに「タスク」と入力し、検索結果の「タスクスケジューラ」をクリック/タップ

「タスクスケジューラライブラリ\Microsoft\Windows\Servicing」の「StartComponentCleanup」を確認すると、仮想マシン上のWindows 10はタスク実行に失敗していた

この処理を手動で実行するには、タスクを手動実行しても構わないが、管理者権限を持つコマンドプロンプト上で「Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase」を実行すればよい。各パラメーターも紹介しておこう。

「StartComponentCleanup」は、更新済みコンポーネントを除く古いコンポーネントをすべて削除する。こちらの場合は30日の猶予などは考慮されない。「ResetBase」は各コンポーネントに対する古いバージョンをすべて削除するというもの。いずれも、ストレージ空き容量の確保という目的には合致する。

「Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase」を実行した状態。コンポーネントストアサイズが先の8.78GBから6.46GBまで縮小した

ただし、前述のタスクが定期的実行されていない環境では、処理完了までに結構な時間を要する場合もあるので、時間に余裕があるときに試していただきたい。

阿久津良和(Cactus)