# Windows Modules Installer Worker 占用 CPU 高怎么办

Windows Modules Installer Worker 占用 CPU 很高，多数时候是 Windows 正在安装或清理更新，`TiWorker.exe` 是 Windows Modules Installer 服务（服务名 `TrustedInstaller`）拉起来的工作进程，负责添加、修改和移除更新与可选功能，补丁星期二、功能更新或新装一个可选功能之后，这活会在一段时间里同时吃 CPU 和磁盘。大部分情况下该做的就是插着电源，让它跑完，等 Windows 提示时再重启。

只有同样的活动每次重启后都回来、Windows 更新几个小时没有进展，或者更新一直失败，这才算问题，这时要修的是工作进程读取的组件存储，而不是把进程停掉。下面按微软给的顺序，讲怎么区分这两种情况，以及该跑什么。

## 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)，月度安全更新也叫补丁星期二或 Update Tuesday，在每月第二个星期二发布，通常是太平洋时间上午 10 点，而且是累积更新，每一个都带着之前所有的修复。从 2021 年 2 月起，维护堆栈更新被并进了这个累积更新，所以要装的是一个合并的包，不再是两个。

可选功能走的也是同一条路，微软的[可选功能指南](https://learn.microsoft.com/en-us/windows/client-management/client-tools/add-remove-hide-features)说添加它们要用 Windows 更新，设备需要联网下载内容。所以在设置 › 系统 › 可选功能里加东西，或者在启用或关闭 Windows 功能里打开某个功能，即使没有待装的更新，也会把工作进程拉起来。

空闲时的飙高通常是组件清理，微软的 [WinSxS 清理页面](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/clean-up-the-winsxs-folder)介绍了 StartComponentCleanup 任务，它在系统没人用时清理组件，某个组件更新安装后至少等 30 天才移除旧版本，并且有一小时的超时。在任务计划程序的任务计划程序库 › Microsoft › Windows › Servicing 下面能看到它，微软还强烈建议不要禁用组件清理。如果你真正在意的是它能清理出多少磁盘空间，[清理 WinSxS 文件夹](/zh/windows/blog/winsxs-folder-cleanup-windows)讲了 DISM 的几个开关，以及 `/ResetBase` 要付出什么代价。

## 区分正在进行和卡住

判断出问题之前，先看三样东西。

1. **Windows 更新本身。** 打开设置 › Windows 更新，页面上如果是一个在动的百分比、一个待处理的重启，或者「检查更新」下面什么也没列，你就知道现在处在哪个阶段。按微软的 [Windows 更新常见问题](https://support.microsoft.com/en-us/windows/windows-update-faq-8a903416-6f45-0718-f5c7-375e92dddeb2)，设置 › Windows 更新 › 更新历史记录里列着装上了什么、哪些失败了。
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 更新。重启一次就够，不要在安装中途反复重启。

**运行 Windows 更新疑难解答。** 在 Windows 11 上，同一篇文章首先指向获取帮助应用里的自动疑难解答，手动的路径是设置 › 系统 › 疑难解答 › 其他疑难解答，再点 Windows 更新旁边的运行。Windows 10 上是设置 › 更新和安全 › 疑难解答 › 其他疑难解答 › Windows 更新。文章还提到升级 64 位系统至少需要 20 GB 可用空间，所以重试前先确认 C 盘有地方。

**只有下载一直失败时才去看下载缓存。** 清空 `C:\Windows\SoftwareDistribution\Download` 治的是下载损坏，不是工作进程太忙，而且在更新安装时这么做不安全，[删除 Windows 更新文件](/zh/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 更新作为替换文件的来源，所以要保持联网，文章说可能要几分钟，网速慢的话更久。`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 更新本身坏了，DISM 跑不完，SFC 文章介绍了把 `/Source` 指向一个正常的 Windows 安装或 Windows 安装介质，再加上 `/LimitAccess`。

## 不要做的事

- **不要禁用 Windows Modules Installer 服务。** 微软自己的说明写着，禁用它之后，Windows 更新的安装或卸载可能失败，CPU 是降下来了，打补丁也没了。
- **不要为了停掉工作进程去禁用 Windows 更新。** 工作进程还负责可选功能和组件修复，电脑不打补丁了，补丁还是得打，活只是堆到后面。
- **不要在任务管理器里结束 TiWorker.exe。** 安装到一半停掉它，更新就只装了一半，长任务就是这样变成失败循环的。
- **不要在更新安装时删 `SoftwareDistribution`，**也不要为了删文件去夺取 `C:\Windows\WinSxS` 的所有权，微软警告过，从 WinSxS 里删文件可能让电脑无法启动或无法更新。
- **更新重启快完成时不要断电。** 微软的常见问题说重启是完成安装的一部分，就算花点时间也让它跑完。

## Mole 能做什么

Mole for Windows 不改 Windows 更新、TrustedInstaller 服务，也不改清理计划。它的优化页里有一个叫「检查并修复系统文件」的任务，调用 Windows 自己的映像维护 API，拿到和 `DISM /CheckHealth` 一样的正常、可修复或不可修复的结论，最多 30 天一次。映像可修复时，结果里会把「修复系统文件」作为单独一步给出来，跑的是同样从 Windows 更新恢复的修复，并标明最多大约要 30 分钟。检查和修复都要管理员权限，电量低时会拒绝修复，写入前还会再检查一次磁盘。另一个任务「重置卡住的更新下载」会在 Windows 更新正在安装或等待重启时先等着，[帮助页](/zh/windows/help)里说正在进行的更新可能让部分维护往后推，指的就是这个。

从窗口左上角的 Mole 标志打开的系统诊断，会在 Windows 等着重启来完成更新安装时提示出来，电脑连续开了好几天、又有 Windows 进程卡在高 CPU 上时，也会建议重启。不是维护任务引起的高 CPU，看 [Windows CPU 占用过高](/zh/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%](/zh/windows/blog/windows-disk-100-percent)。


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