品質更新プログラムのアンインストール及び StartComponentCleanup タスクに関するよくあるご質問

Last Update: feedback 共有

※本記事はマイクロソフト社員によって公開されております。

概要

本稿では Windows 10 及び Windows Server 2016、2019 において、品質更新プログラムのアンインストールや、
古い品質更新プログラムのクリーンアップを行う StartComponentCleanup タスクについて、多く寄せられているご質問とその回答内容を記載しております。

詳細

Q1.
品質更新プログラムを毎月、適用している環境で、適用済みの最新版をアンインストールした場合、
前月に適用した更新プログラムのビルド バージョンに戻るでしょうか?
A1.
いいえ、必ずしも前月適用した更新プログラムのビルドバージョンに戻るとは限りません。
適用済みの最新の品質更新プログラムをアンインストールした場合、適用済みの品質更新プログラムのうち (アンインストール対象を除く)
最も新しいビルドバージョンに戻される動作となります。

しかしながら StartComponentCleanup タスク等の動作により、適用済みの古い品質更新プログラムは自動的に削除されるため、
前月に適用した品質更新プログラムの情報が必ず残っているとは限らず、最新版のアンインストールを行った際、
初期セットアップ時のビルド バージョンに戻ることも想定されます。これは弊社製品における想定された動作です。

参考情報
WinSxS フォルダーのクリーンアップ
https://learn.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/clean-up-the-winsxs-folder?view=windows-10

Q2.
StartComponentCleanup タスクによって古い品質更新プログラムが削除されるのは、どれぐらいの周期で実施されますか?
A2.
おおよそ 7 日周期で StartComponentCleanup タスクが動作しています。
また StartComponentCleanup タスクは実行時間が「1時間」と設定されております関係で Windows Server 2016 など
品質更新プログラムのサイズが比較的大きな環境では、作業時間が1時間を超えてしまい、タスクの処理がキャンセルされるケースがございます。
キャンセル後の次回タスク実行時、前回の処理で削除が未完了であった部分から削除処理を行っていきます。

※ StartComponentCleanup タスクが動作した場合、適用後 30 日を経過している品質更新プログラムの中から、古いものを削除していきます。

Q3.
StartComponentCleanup タスクの動作を手動で実施する方法はありますか?
A3.
以下のように Dism コマンドのオプション StartComponentCleanup を利用して、クリーンアップ処理を実施します。

  1. コマンド プロンプトを “管理者として実行” にて起動します。

  2. 以下のコマンドを実行します。

    1
    Dism /Online /Cleanup-Image /StartComponentCleanup 

補足
StartComponentCleanup タスクと異なり、作業時間の制限(1時間)はございません。
Windows Server 2016 の場合、上記コマンド実行時に “Error2 ( 指定されたファイルが見つかりません ) “ が出力される場合がございますが、
内部で行われている削除処理に影響はないため、静観いただいても問題ございません。また実施後、原則、再起動する必要はございません。

Q4.
新しい更新プログラムの適用後、Tiworker.exe の CPU 使用率が非常に高い状態 (CPU コア1個分を利用している状態) になるケースがある。
このケースの発生要因と対処について、ご教示ください。
A4.
更新プログラム適用が再起動を含め、完全に終了した後、Tiworkwer.exe の CPU 使用率が上昇する場合、StartComponentCleanup タスクが動作し、
削除可能な古い更新プログラムを確認していることが想定されます。
ご利用をいただいている環境において、この動作の影響がある場合は、以下の手順で StartComponentCleanup タスクを無効化します。

  1. コマンド プロンプトを “管理者として実行” にて起動します。

  2. 以下のコマンドを実行し、該当タスクを無効化します。

    1
    Schtasks /Change /TN "\Microsoft\Windows\Servicing\StartComponentCleanup" /Disable  

補足
該当タスクを無効化した場合、古い更新プログラムが自動で削除されず、残ってしまう可能性がございます。
C ドライブの空き領域を増やす必要があるなど、必要に応じて、前述の A3 に記載しました手順を実施いただければと存じます。

Q5.
C ドライブの空き領域を作成するため、以下のコマンドで古い更新プログラムをクリーンアップする予定ですが、影響はありますでしょうか?
Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase

A5.
/ResetBase を利用した場合、現在、適用さている最新の品質更新プログラムをベースラインとして、それ以前の更新プログラム及び
初期バージョンのモジュールを全て削除する動作となります。
削除されたモジュール数に伴い C ドライブの空き領域を増やせますが、現在、適用されている最新の品質更新プログラムを
アンインストールすることができなくなります。
(/ResetBase を実行後に適用される更新プログラムについては、アンインストール可能でございます)

補足
弊社 Azure を含め、仮想マシンのマスター イメージが提供されているケースにおいて、対象のマスター イメージが事前に /ResetBase にてクリーンアップされているケースがございます。
その場合、マスター イメージを展開後、初期に適用済みの更新プログラムをアンインストールすることはできません。

Q6.
Windows 11 を使っていますが、過去に適用していたサービス スタック更新プログラムがいつの間にかに削除されていました。
サービス スタック更新プログラム (SSU) もStartComponentCleanup タスクで削除されますか?

A6.
はい。Windows 11 と Windows Server 2022 ではStartComponentCleanup タスクによってアーカイブされているだけの状態となったサービス スタック更新プログラムを削除するように動作が変更されました。
それ以前の OS では StartComponentCleanup タスクを実行してもサービス スタック更新プログラムは削除されません。

それぞれのOSの関係をまとめると以下となります。

StartComponentCleanup タスクによる SSUの削除

クライアントOS 〇削除される /×削除されない
Windows 10 ×
Windows 11
サーバー OS 〇削除される /×削除されない
Windows Server 2016 ×
Windows Server 2019 ×
Windows Server 2022

特記事項

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。