# Windows Modules Installer Worker CPU 佔用高怎麼辦

Windows Modules Installer Worker 佔用 CPU 很高，多數時候是 Windows 正在安裝或清理更新，`TiWorker.exe` 是 Windows Modules Installer 服務（服務名稱 `TrustedInstaller`）啟動的工作程序，負責新增、修改和移除更新與選用功能，Patch Tuesday、功能更新或新裝一個選用功能之後，這份工作會在一段時間裡同時吃 CPU 和磁碟。大部分情況下該做的就是接著電源，讓它跑完，等 Windows 提示時再重新啟動。

只有同樣的活動每次重新啟動後都回來、Windows Update 幾個小時沒有進展，或者更新一直失敗，這才算問題，這時要修的是工作程序讀取的元件存放區，而不是把程序停掉。下面照微軟給的順序，講怎麼分辨這兩種情況，以及該執行什麼。

## TiWorker.exe 和 TrustedInstaller 是什麼

微軟的[服務參考](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`。

這個工作程序屬於服務堆疊，微軟的[服務堆疊頁面](https://learn.microsoft.com/en-us/windows/deployment/update/servicing-stack-updates)把服務堆疊描述為「the component that installs Windows updates」，它建立在元件型服務（CBS）之上，DISM、系統檔案檢查程式、開啟或關閉 Windows 功能以及元件修復也都在它底下跑。所以同一個程序忙起來的原因，從外面看可能毫不相干，可能是每月更新，可能是你剛加的功能，也可能是 Windows 在整理舊版本元件。

## 它為什麼會在這些時候飆高

| 觸發原因 | 什麼時候發生 | 你會看到什麼 |
| --- | --- | --- |
| 每月安全性更新 | 每月第二個星期二 | 先下載，接著是很長的安裝階段和一次重新啟動 |
| 選用預覽更新 | 每月第四週，只有你選擇安裝才會裝 | 同樣的過程，碰到的人比較少 |
| 年度功能更新 | 每年一次，在下半年 | 跑得最久，常常跨過不只一次重新啟動 |
| 新增選用功能 | 你在設定裡按下新增之後 | 下載一完成，工作程序就開始跑 |
| 元件清理 | 電腦閒置時 | 你離開時有活動，回來時有時還在跑 |

這些日期來自微軟的[發行週期頁面](https://learn.microsoft.com/en-us/windows/deployment/update/release-cycle)，每月安全性更新也叫 Patch Tuesday 或 Update Tuesday，在每月第二個星期二發行，通常是太平洋時間上午 10 點，而且是累積更新，每一個都帶著之前所有的修正。從 2021 年 2 月起，服務堆疊更新被併進這個累積更新，所以要裝的是一個合併的套件，不再是兩個。

選用功能走的也是同一條路，微軟的[選用功能指南](https://learn.microsoft.com/en-us/windows/client-management/client-tools/add-remove-hide-features)說新增它們要透過 Windows Update，裝置需要連網下載內容。所以在設定 › 系統 › 選用功能裡加東西，或者在開啟或關閉 Windows 功能裡打開某個功能，即使沒有待裝的更新，也會把工作程序帶起來。

閒置時的飆高通常是元件清理，微軟的 [WinSxS 清理頁面](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/clean-up-the-winsxs-folder)介紹了 StartComponentCleanup 工作，它在系統沒人用時清理元件，某個元件更新安裝後至少等 30 天才移除舊版本，並且有一小時的逾時。在工作排程器的工作排程器程式庫 › Microsoft › Windows › Servicing 底下看得到它，微軟也強烈建議不要停用元件清理。如果你真正在意的是它能清理出多少磁碟空間，[清理 WinSxS 資料夾](/tw/windows/blog/winsxs-folder-cleanup-windows)講了 DISM 的幾個參數，以及 `/ResetBase` 要付出什麼代價。

## 分辨正在進行和卡住

判斷出問題之前，先看三樣東西。

1. **Windows Update 本身。** 開啟設定 › Windows Update，頁面上如果是一個在動的百分比、一個待處理的重新啟動，或者「檢查更新」底下什麼也沒列，你就知道現在在哪個階段。依照微軟的 [Windows Update 常見問題](https://support.microsoft.com/en-us/windows/windows-update-faq-8a903416-6f45-0718-f5c7-375e92dddeb2)，設定 › Windows Update › 更新記錄裡列著裝了什麼、哪些失敗了。
2. **觀察幾分鐘工作管理員。** 按 `Ctrl + Shift + Esc`，先按 CPU 排序，再按磁碟排序，工作程序在 CPU 和磁碟之間來回切換然後慢慢退下去，就是在正常工作。記下它持續多久，而不是峰值多高，更新後幾分鐘到一小時都正常，功能更新還要更久。
3. **可靠性監視器。** 執行 `perfmon /rel`（[微軟的 `perfmon` 參考](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/perfmon)裡有這個參數的說明），連續幾天都有更新安裝失敗，是陷入循環而不是長工作最明顯的訊號。

想看細節的話，服務記錄檔在 `%windir%\Logs\CBS\CBS.log`，它很大，而且工作程序執行時一直在寫，所以只讀，不要編輯或刪除。記錄檔最後幾行一直在變，就表示工作還在進行，哪怕設定裡的百分比還沒動。

用電池的筆電要多說一句，常見問題裡建議筆電和平板不用時也接著電源，這樣在使用時間以外安裝更新時電力夠它跑完，[更新疑難排解文章](https://support.microsoft.com/en-us/windows/troubleshoot-problems-updating-windows-188c2b0f-10a7-d72f-65b8-32d177eb136c)也把接上電源並連網列為第一項檢查。用電池時安裝老是停下來，看起來像卡住，其實是這份工作一直沒拿到它需要的時間。

## 真的卡住了怎麼辦

照順序一項項來，哪一步解決了就停。

**接上電源等一次。** 讓電腦接著交流電並連網，能關的都關掉，給它一小時不睡眠，很多「卡住」其實是一個累積更新被闔上螢幕打斷了兩次。

**重新啟動一次。** 微軟的疑難排解文章建議重新啟動，確保沒有別的應用程式擋著更新，有「更新並重新啟動」就用開始 › 電源 › 更新並重新啟動，然後再看一次設定 › Windows Update。重新啟動一次就夠，不要在安裝中途反覆重新啟動。

**執行 Windows Update 疑難排解員。** 在 Windows 11 上，同一篇文章首先指向取得協助應用程式裡的自動疑難排解員，手動的路徑是設定 › 系統 › 疑難排解 › 其他疑難排解員，再按 Windows Update 旁邊的執行。Windows 10 上是設定 › 更新與安全性 › 疑難排解 › 其他疑難排解員 › Windows Update。文章也提到升級 64 位元系統至少需要 20 GB 可用空間，所以重試前先確認 C 槽有空間。

**只有下載一直失敗時才去看下載快取。** 清空 `C:\Windows\SoftwareDistribution\Download` 治的是下載損壞，不是工作程序太忙，而且在更新安裝時這麼做不安全，[刪除 Windows Update 檔案](/tw/windows/blog/delete-windows-update-files)講了什麼時候適用，以及怎麼先停掉服務。

## 修復元件存放區，先 DISM 再 SFC

如果更新反覆失敗，工作程序又一直回到同一份工作上，它安裝所用的檔案可能已經損壞。微軟的[系統檔案檢查程式文章](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` 接著拿修好的元件存放區去核對受保護的系統檔案。如果想先知道到底需不需要修，微軟的[映像修復指南](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 文章給的指令是：

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

這些指令只做修復，不會刪掉你裝的任何東西，所以沒什麼需要復原的。如果 Windows Update 本身壞了，DISM 跑不完，SFC 文章介紹了把 `/Source` 指向一個正常的 Windows 安裝或 Windows 安裝媒體，再加上 `/LimitAccess`。

## 不要做的事

- **不要停用 Windows Modules Installer 服務。** 微軟自己的說明寫著，停用之後，Windows 更新的安裝或解除安裝可能失敗，CPU 是降下來了，修補也沒了。
- **不要為了停掉工作程序去停用 Windows Update。** 工作程序還負責選用功能和元件修復，電腦不再修補，修補還是得做，工作只是堆到後面。
- **不要在工作管理員裡結束 TiWorker.exe。** 安裝到一半停掉它，更新就只套用了一半，長工作就是這樣變成失敗循環的。
- **不要在更新安裝時刪 `SoftwareDistribution`，**也不要為了刪檔案去取得 `C:\Windows\WinSxS` 的擁有權，微軟警告過，從 WinSxS 裡刪檔案可能讓電腦無法開機或無法更新。
- **更新重新啟動快完成時不要斷電。** 微軟的常見問題說重新啟動是完成安裝的一部分，就算花點時間也讓它跑完。

## Mole 能做什麼

Mole for Windows 不改 Windows Update、TrustedInstaller 服務，也不改清理排程。它的最佳化頁裡有一個叫「檢查並修復系統檔案」的工作，呼叫 Windows 自己的映像維護 API，拿到和 `DISM /CheckHealth` 一樣的正常、可修復或無法修復的結論，最多 30 天一次。映像可修復時，結果裡會把「修復系統檔案」當作單獨一步給出來，跑的是同樣從 Windows Update 還原的修復，並標明最多大約要 30 分鐘。檢查和修復都要系統管理員權限，電量低時會拒絕修復，寫入前還會再檢查一次磁碟。另一個工作「重設卡住的更新下載」會在 Windows Update 正在安裝或等待重新啟動時先等著，[說明頁](/tw/windows/help)裡說進行中的更新可能讓部分維護往後延，指的就是這個。

從視窗左上角的 Mole 標誌開啟的系統診斷，會在 Windows 等著重新啟動來完成更新安裝時提示出來，電腦連續開了好幾天、又有 Windows 程序卡在高 CPU 上時，也會建議重新啟動。不是維護工作造成的高 CPU，看 [Windows CPU 使用率過高](/tw/windows/blog/windows-high-cpu-usage)。

## 常見問題

### Windows Modules Installer Worker 是病毒嗎？

正版程序是 `TiWorker.exe`，由 Windows Modules Installer 服務（`TrustedInstaller`）啟動，用來安裝更新和選用功能。在工作管理員裡對它按右鍵，選開啟檔案位置，它應該在 Windows 資料夾裡面。

### TiWorker.exe 佔用 CPU 高會持續多久？

每月更新後，通常在安裝和隨後那次重新啟動裡就會平下來，功能更新要更久。電腦閒置時的活動多半是元件清理工作，一小時後會自己停。

### 能停用 TrustedInstaller 來解決 CPU 佔用高嗎？

不安全。微軟說停用它會讓 Windows 更新的安裝或解除安裝失敗，讓工作跑完，重新啟動一次，如果它還反覆回來，再用 DISM 和 SFC 修復。

### TrustedInstaller 為什麼會讓磁碟使用率很高？

安裝更新或新增功能時，要往元件存放區寫很多檔案，同時讀取被取代的舊檔案，在慢的或快滿的硬碟上，這就顯示成磁碟 100%，磁碟這一側的問題看[工作管理員裡磁碟 100%](/tw/windows/blog/windows-disk-100-percent)。


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