# Windows Modules Installer WorkerのCPU使用率が高い:待つか直すか

Windows Modules Installer WorkerのCPU使用率が高いときは、たいていWindowsが更新プログラムをインストールしているか、後片付けをしているところです。`TiWorker.exe`はWindows Modules Installerサービス(サービス名`TrustedInstaller`)が起動するワーカーで、更新プログラムやオプション機能の追加、変更、削除を担当します。この作業はPatch Tuesday、機能更新プログラム、新しいオプション機能の追加のあと、しばらくCPUとディスクを大きく使います。ほとんどの場合は電源につないだまま終わるのを待ち、Windowsに求められたら再起動するのが正解です。

問題になるのは、同じ動きが再起動のたびに戻ってくる、Windows Updateが何時間も進まない、更新が失敗し続ける、といったときだけです。その場合に直すべきなのはワーカーが読み込むコンポーネントストアで、ワーカーを止めることではありません。以下では、この2つをどう見分けるか、何を実行するかをMicrosoftの順番どおりに説明します。

## TiWorker.exeとTrustedInstallerとは

Microsoftの[サービスのリファレンス](https://learn.microsoft.com/en-us/windows-server/security/windows-services/security-guidelines-for-disabling-system-services-in-windows-server)では、Windows Modules Installerのサービス名は`TrustedInstaller`で、「enables installation, modification, and removal of Windows updates and optional components」、つまりWindowsの更新プログラムとオプションコンポーネントのインストール、変更、削除を可能にするサービスだと説明されています。スタートアップの種類は手動なので、普段はほとんど動いておらず、サービス処理の作業があるときだけ現れます。タスクマネージャーの「プロセス」タブではWindows Modules Installer Workerとして、「詳細」タブではファイル名`TiWorker.exe`として表示されます。

このワーカーはサービススタックの一部です。Microsoftの[サービススタックのページ](https://learn.microsoft.com/en-us/windows/deployment/update/servicing-stack-updates)は、サービススタックを「the component that installs Windows updates」と説明しています。これはコンポーネントベースのサービス(CBS)の上に作られていて、DISM、システムファイルチェッカー、Windowsの機能の有効化または無効化、コンポーネントの修復もその上で動きます。そのため、外から見ると関係なさそうな理由で同じプロセスが動き出します。毎月の更新プログラムのこともあれば、追加した機能のことも、Windowsが古いコンポーネントのバージョンを整理していることもあります。

## 負荷が上がるタイミング

| きっかけ | いつ起きるか | 見えること |
| --- | --- | --- |
| 毎月のセキュリティ更新プログラム | 毎月第2火曜日 | ダウンロードのあと、長いインストールと再起動 |
| オプションのプレビュー更新プログラム | 月の第4週、自分でインストールを選んだ場合のみ | 同じ流れで、対象になる人は少ない |
| 年1回の機能更新プログラム | 年1回、下半期 | いちばん長く、再起動をまたぐことも多い |
| オプション機能の追加 | 設定で「追加」を押した直後 | ダウンロードが終わるとすぐワーカーが動き出す |
| コンポーネントのクリーンアップ | PCがアイドルのとき | 離席中に動き、戻ってもまだ動いていることがある |

日付はMicrosoftの[リリースサイクルのページ](https://learn.microsoft.com/en-us/windows/deployment/update/release-cycle)によるものです。毎月のセキュリティ更新プログラムはPatch TuesdayやUpdate Tuesdayとも呼ばれ、毎月第2火曜日、通常は太平洋時間の午前10時に公開されます。累積更新プログラムなので、どれもそれまでの修正をすべて含みます。2021年2月からはサービススタック更新プログラムがこの累積更新プログラムに統合されたため、インストールするのは2つではなく1つのまとまったパッケージです。

オプション機能も同じ経路を通ります。Microsoftの[オプション機能のガイド](https://learn.microsoft.com/en-us/windows/client-management/client-tools/add-remove-hide-features)によると、追加にはWindows Updateが使われ、コンテンツのダウンロードにはデバイスがオンラインである必要があります。そのため、設定 › システム › オプション機能で何かを追加したり、「Windowsの機能の有効化または無効化」で機能をオンにしたりすると、保留中の更新がなくてもワーカーが動き出します。

アイドル時の負荷はたいていコンポーネントのクリーンアップです。Microsoftの[WinSxSクリーンアップのページ](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/clean-up-the-winsxs-folder)はStartComponentCleanupタスクについて、システムが使われていないときにコンポーネントを整理すること、更新されたコンポーネントのインストールから少なくとも30日待ってから以前のバージョンを削除すること、1時間のタイムアウトがあることを説明しています。タスク スケジューラのタスク スケジューラ ライブラリ › Microsoft › Windows › Servicingで確認できます。Microsoftはコンポーネントのクリーンアップを無効にしないよう強く推奨しています。本当に気になるのがこれで空くディスク容量なら、[WinSxSフォルダーのクリーンアップ](/ja/windows/blog/winsxs-folder-cleanup-windows)でDISMのスイッチと、`/ResetBase`で何を手放すかを説明しています。

## 進行中か止まっているかを見分ける

何かがおかしいと決める前に、3つのものを見てください。

1. **Windows Update自体。** 設定 › Windows Updateを開きます。進んでいくパーセンテージ、保留中の再起動、何も表示されていない「更新プログラムのチェック」のどれかが見えれば、今どの段階かがわかります。Microsoftの[Windows UpdateのFAQ](https://support.microsoft.com/en-us/windows/windows-update-faq-8a903416-6f45-0718-f5c7-375e92dddeb2)によると、設定 › Windows Update › 更新の履歴に、インストールされたものと失敗したものが表示されます。
2. **数分間のタスクマネージャー。** `Ctrl + Shift + Esc`を押し、CPUで並べ替え、次にディスクで並べ替えます。CPUとディスクを交互に使ってから消えていくワーカーは、普通に仕事をしています。ピークの高さではなく続いた時間を見てください。更新後の数分から1時間は普通で、機能更新プログラムはもっとかかります。
3. **信頼性モニター。** `perfmon /rel`を実行します([Microsoftの`perfmon`リファレンス](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/perfmon)にこのスイッチの説明があります)。何日も続けて更新プログラムのインストールが失敗しているのが、長い作業ではなくループしているいちばんはっきりしたサインです。

詳しく見たい場合、サービス処理のログは`%windir%\Logs\CBS\CBS.log`にあります。サイズが大きく、ワーカーの実行中に書き込まれるので、編集や削除はせず読むだけにしてください。ログの最後の行が変わり続けていれば、設定のパーセンテージがまだ動いていなくても作業は進んでいます。

バッテリーで動いているノートPCについて一言。FAQは、使っていないときもノートPCやタブレットを電源につないでおき、アクティブ時間外のインストールを最後まで終えられる電力を確保するよう勧めています。[更新のトラブルシューティング記事](https://support.microsoft.com/en-us/windows/troubleshoot-problems-updating-windows-188c2b0f-10a7-d72f-65b8-32d177eb136c)も、電源とネットワークへの接続を最初の確認項目にしています。バッテリーでインストールが止まり続けると止まっているように見えますが、実際は必要な時間をもらえていない作業です。

## 本当に止まっているとき

順番に試し、どれかで直ったらそこでやめてください。

**電源につないで一度待つ。** PCをAC電源につなぎ、オンラインのままにして、閉じられるものは閉じ、スリープさせずに1時間待ちます。「止まった」という報告の多くは、蓋を閉じたことで2回中断された累積更新プログラムです。

**一度だけ再起動する。** Microsoftのトラブルシューティング記事は、ほかのアプリが更新を妨げないよう再起動することを勧めています。表示されていればスタート › 電源 › 更新して再起動を使い、そのあと設定 › Windows Updateをもう一度確認します。再起動は一度だけにし、インストールの途中で何度も繰り返さないでください。

**Windows Updateのトラブルシューティング ツールを実行する。** Windows 11では、同じ記事がまず問い合わせアプリの自動トラブルシューティング ツールを案内しています。手動では設定 › システム › トラブルシューティング › その他のトラブルシューティング ツールを開き、Windows Updateの横の「実行」を選びます。Windows 10では設定 › 更新とセキュリティ › トラブルシューティング › 追加のトラブルシューティング ツール › Windows Updateです。記事には64ビットのアップグレードに少なくとも20 GBの空き領域が必要ともあるので、再試行の前にCドライブに余裕があるか確認してください。

**ダウンロードキャッシュを見るのは、ダウンロードが失敗し続けるときだけ。** `C:\Windows\SoftwareDistribution\Download`を空にするのは壊れたダウンロードへの対処で、忙しいワーカーへの対処ではありません。更新のインストール中に行うのも安全ではありません。[Windows Updateのファイルを削除する](/ja/windows/blog/delete-windows-update-files)で、どんなときに当てはまるか、先にサービスを止める方法を説明しています。

## コンポーネントストアを修復する: DISM、次にSFC

更新が何度も失敗し、ワーカーが同じ作業に戻り続けるなら、インストール元のファイルが壊れている可能性があります。Microsoftの[システムファイルチェッカーの記事](https://support.microsoft.com/en-us/topic/use-the-system-file-checker-tool-to-repair-missing-or-corrupted-system-files-79aa86cb-ca52-166a-92a3-966e85d4094e)は順番をはっきり書いています。システムファイルチェッカーの前にDISMを実行します。管理者としてコマンド プロンプトを開き、次を実行します。

```cmd
DISM.exe /Online /Cleanup-image /Restorehealth
sfc /scannow
```

DISMは置き換え用ファイルの取得元としてWindows Updateを使うので、オンラインのままにしてください。記事によると数分かかることがあり、回線が遅いともっとかかります。続く`sfc /scannow`は、修復されたストアと保護されたシステムファイルを照合します。そもそも修復が必要かを先に知りたいなら、Microsoftの[イメージ修復ガイド](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/repair-a-windows-image)が`/CheckHealth`を説明しています。これはイメージが正常、修復可能、修復不可能のどれかを報告します。`/ScanHealth`は数分かかる、より長いスキャンです。

```cmd
Dism /Online /Cleanup-Image /CheckHealth
```

SFCも結果を同じ`CBS.log`に書き込みます。SFCの行だけを取り出すには、SFCの記事に次のコマンドがあります。

```cmd
findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >"%userprofile%\Desktop\sfcdetails.txt"
```

これらのコマンドは修復するだけで、インストールしたものを削除しないので、元に戻すものはありません。Windows Update自体が壊れていてDISMが終わらない場合は、SFCの記事が`/Source`を正常なWindowsのインストールやWindowsのメディアに向け、`/LimitAccess`を付ける方法を説明しています。

## やってはいけないこと

- **Windows Modules Installerサービスを無効にしない。** Microsoft自身の説明に、無効にするとWindowsの更新プログラムのインストールやアンインストールが失敗するおそれがあるとあります。CPUの負荷は消えますが、更新もされなくなります。
- **ワーカーを止めるためにWindows Updateを無効にしない。** ワーカーはオプション機能やコンポーネントの修復も担当しています。更新を止めたPCでも更新が要らなくなるわけではなく、作業があとに積み上がるだけです。
- **タスクマネージャーでTiWorker.exeを終了しない。** インストールの途中で止めると更新が中途半端に適用され、長い作業が失敗のループに変わります。
- **更新のインストール中に`SoftwareDistribution`を削除しない。**ファイルを消すために`C:\Windows\WinSxS`の所有権を取得するのもやめてください。MicrosoftはWinSxSからファイルを削除するとPCが起動や更新をできなくなるおそれがあると警告しています。
- **更新の再起動が終わる途中で電源を切らない。** MicrosoftのFAQは再起動もインストールを終える工程の一部だとしているので、時間がかかっても最後まで待ってください。

## Moleでできること

Mole for WindowsはWindows Update、TrustedInstallerサービス、クリーンアップのスケジュールを変更しません。「最適化」ページには「システムファイルを確認して修復」というタスクがあり、Windows自身のイメージ サービスAPIに問い合わせて、`DISM /CheckHealth`と同じ正常、修復可能、修復不可能の判定を最大30日に1回取得します。イメージが修復可能なら、結果に別の手順として「システムファイルを修復」が表示されます。これはWindows Updateから同じRestoreHealthの修復を行うもので、最大30分ほどかかると表示されます。確認と修復はどちらも管理者権限を求め、バッテリー残量が少ないと修復は拒否され、書き込む前にディスクを再確認します。もうひとつのタスク「止まった更新のダウンロードをリセット」は、Windows Updateがインストール中か再起動待ちの間は待機します。[ヘルプページ](/ja/windows/help)で、進行中の更新が一部のメンテナンスを後回しにすることがある、と書いているのはこのことです。

ウィンドウ左上のMoleマークから開くDoctorは、Windowsが更新のインストールを終えるために再起動を待っているとそれを知らせ、PCが何日も起動したままでWindowsのプロセスが高いCPU使用率で止まっているときは再起動を勧めます。サービス処理以外の高いCPU使用率については、[WindowsのCPU使用率が高い](/ja/windows/blog/windows-high-cpu-usage)を見てください。

## よくある質問

### Windows Modules Installer Workerはウイルスですか?

本物のプロセスは`TiWorker.exe`で、Windows Modules Installerサービス(`TrustedInstaller`)が更新プログラムやオプション機能をインストールするために起動します。タスクマネージャーで右クリックして「ファイルの場所を開く」を選ぶと、Windowsフォルダーの中にあるはずです。

### TiWorker.exeの高いCPU使用率はどれくらい続きますか?

毎月の更新プログラムのあとは、たいていインストールとそれに続く再起動の間に落ち着きます。機能更新プログラムはもっと長くかかります。PCがアイドルのときの動きは、多くの場合コンポーネントのクリーンアップタスクで、1時間で止まります。

### 高いCPU使用率を止めるためにTrustedInstallerを無効にできますか?

安全ではありません。Microsoftは、無効にするとWindowsの更新プログラムのインストールやアンインストールが失敗することがあるとしています。作業を最後まで終わらせ、一度再起動し、それでも戻ってくるならDISMとSFCで修復してください。

### TrustedInstallerでディスク使用率が高くなるのはなぜですか?

更新のインストールや機能の追加では、コンポーネントストアに多くのファイルを書き込み、置き換える古いファイルを読み込みます。遅いドライブや空きの少ないドライブではそれがディスク100%として表示されます。ディスク側については[タスクマネージャーでディスクが100%](/ja/windows/blog/windows-disk-100-percent)で説明しています。


Canonical: https://mole.fit/ja/windows/blog/windows-modules-installer-worker-high-cpu
