Windows Modules Installer Worker 占用 CPU 高怎么办
Windows Modules Installer Worker 占用 CPU 很高,多数时候是 Windows 正在安装或清理更新,TiWorker.exe 是 Windows Modules Installer 服务(服务名 TrustedInstaller)拉起来的工作进程,负责添加、修改和移除更新与可选功能,补丁星期二、功能更新或新装一个可选功能之后,这活会在一段时间里同时吃 CPU 和磁盘。大部分情况下该做的就是插着电源,让它跑完,等 Windows 提示时再重启。
只有同样的活动每次重启后都回来、Windows 更新几个小时没有进展,或者更新一直失败,这才算问题,这时要修的是工作进程读取的组件存储,而不是把进程停掉。下面按微软给的顺序,讲怎么区分这两种情况,以及该跑什么。
TiWorker.exe 和 TrustedInstaller 是什么
微软的服务参考里列出了 Windows Modules Installer,服务名是 TrustedInstaller,说明是它「enables installation, modification, and removal of Windows updates and optional components」,也就是负责安装、修改和移除 Windows 更新与可选组件。它的启动类型是手动,所以平时大多不在运行,只有在有维护工作时才出现。任务管理器的进程页里,它显示为 Windows Modules Installer Worker,详细信息页里则是文件名 TiWorker.exe。
这个工作进程属于维护堆栈,微软的维护堆栈页面把维护堆栈描述为「the component that installs Windows updates」,它建立在基于组件的维护(CBS)之上,DISM、系统文件检查器、启用或关闭 Windows 功能以及组件修复也都在它下面跑。所以同一个进程忙起来的原因,从外面看可能毫不相干,可能是月度更新,可能是你刚加的功能,也可能是 Windows 在清理旧版本组件。
它为什么会在这些时候飙高
| 触发原因 | 什么时候发生 | 你会看到什么 |
|---|---|---|
| 月度安全更新 | 每月第二个星期二 | 先下载,然后是很长的安装阶段和一次重启 |
| 可选预览更新 | 每月第四周,只有你选择安装才会装 | 同样的过程,碰到的人更少 |
| 年度功能更新 | 每年一次,在下半年 | 跑得最久,常常跨过不止一次重启 |
| 添加可选功能 | 你在设置里点添加之后 | 下载一完成,工作进程就开始跑 |
| 组件清理 | 电脑空闲时 | 你离开时有活动,回来时有时还在跑 |
这些日期来自微软的发布周期页面,月度安全更新也叫补丁星期二或 Update Tuesday,在每月第二个星期二发布,通常是太平洋时间上午 10 点,而且是累积更新,每一个都带着之前所有的修复。从 2021 年 2 月起,维护堆栈更新被并进了这个累积更新,所以要装的是一个合并的包,不再是两个。
可选功能走的也是同一条路,微软的可选功能指南说添加它们要用 Windows 更新,设备需要联网下载内容。所以在设置 › 系统 › 可选功能里加东西,或者在启用或关闭 Windows 功能里打开某个功能,即使没有待装的更新,也会把工作进程拉起来。
空闲时的飙高通常是组件清理,微软的 WinSxS 清理页面介绍了 StartComponentCleanup 任务,它在系统没人用时清理组件,某个组件更新安装后至少等 30 天才移除旧版本,并且有一小时的超时。在任务计划程序的任务计划程序库 › Microsoft › Windows › Servicing 下面能看到它,微软还强烈建议不要禁用组件清理。如果你真正在意的是它能清理出多少磁盘空间,清理 WinSxS 文件夹讲了 DISM 的几个开关,以及 /ResetBase 要付出什么代价。
区分正在进行和卡住
判断出问题之前,先看三样东西。
- Windows 更新本身。 打开设置 › Windows 更新,页面上如果是一个在动的百分比、一个待处理的重启,或者「检查更新」下面什么也没列,你就知道现在处在哪个阶段。按微软的 Windows 更新常见问题,设置 › Windows 更新 › 更新历史记录里列着装上了什么、哪些失败了。
- 观察几分钟任务管理器。 按
Ctrl + Shift + Esc,先按 CPU 排序,再按磁盘排序,工作进程在 CPU 和磁盘之间来回切换然后慢慢退下去,就是在正常干活。记下它持续多久,而不是峰值多高,更新后几分钟到一小时都正常,功能更新还要更久。 - 可靠性监视器。 运行
perfmon /rel(微软的perfmon参考里有这个开关的说明),连续几天都有更新安装失败,是陷入循环而不是长任务最明显的信号。
想看细节的话,维护日志在 %windir%\Logs\CBS\CBS.log,它很大,而且工作进程运行时一直在写,所以只读,不要编辑或删除。日志最后几行一直在变,就说明活还在干,哪怕设置里的百分比还没动。
用电池的笔记本要多说一句,常见问题里建议笔记本和平板不用时也插着电,这样在使用时段之外安装更新时电量够它跑完,更新疑难解答文章也把接通电源并联网列为第一项检查。用电池时安装老是停下来,看着像卡住,其实是这个任务一直没拿到它需要的时间。
真的卡住了怎么办
按顺序一项项来,哪一步解决了就停。
插上电源等一次。 让电脑接着交流电并联网,能关的都关掉,给它一小时不睡眠,很多「卡住」其实是一个累积更新被合上盖子打断了两次。
重启一次。 微软的疑难解答文章建议重启,确保没有别的应用挡着更新,有「更新并重启」就用开始 › 电源 › 更新并重启,然后再看一次设置 › Windows 更新。重启一次就够,不要在安装中途反复重启。
运行 Windows 更新疑难解答。 在 Windows 11 上,同一篇文章首先指向获取帮助应用里的自动疑难解答,手动的路径是设置 › 系统 › 疑难解答 › 其他疑难解答,再点 Windows 更新旁边的运行。Windows 10 上是设置 › 更新和安全 › 疑难解答 › 其他疑难解答 › Windows 更新。文章还提到升级 64 位系统至少需要 20 GB 可用空间,所以重试前先确认 C 盘有地方。
只有下载一直失败时才去看下载缓存。 清空 C:\Windows\SoftwareDistribution\Download 治的是下载损坏,不是工作进程太忙,而且在更新安装时这么做不安全,删除 Windows 更新文件讲了什么时候适用,以及怎么先停掉服务。
修复组件存储,先 DISM 再 SFC
如果更新反复失败,工作进程又一直回到同一个任务上,它安装所用的文件可能已经损坏。微软的系统文件检查器文章把顺序写得很明白,先跑 DISM,再跑系统文件检查器。以管理员身份打开命令提示符,运行:
DISM.exe /Online /Cleanup-image /Restorehealth
sfc /scannow
DISM 拿 Windows 更新作为替换文件的来源,所以要保持联网,文章说可能要几分钟,网速慢的话更久。sfc /scannow 接着拿修好的组件存储去核对受保护的系统文件。如果想先知道到底需不需要修,微软的映像修复指南介绍了 /CheckHealth,它会报告映像是正常、可修复还是不可修复,还有 /ScanHealth,是一次更长的扫描,要几分钟:
Dism /Online /Cleanup-Image /CheckHealth
SFC 的结果也写进同一个 CBS.log,只想把它自己的那几行拎出来,SFC 文章给的命令是:
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 更新正在安装或等待重启时先等着,帮助页里说正在进行的更新可能让部分维护往后推,指的就是这个。
从窗口左上角的 Mole 标志打开的系统诊断,会在 Windows 等着重启来完成更新安装时提示出来,电脑连续开了好几天、又有 Windows 进程卡在高 CPU 上时,也会建议重启。不是维护任务引起的高 CPU,看 Windows CPU 占用过高。
常见问题
Windows Modules Installer Worker 是病毒吗?
正版进程是 TiWorker.exe,由 Windows Modules Installer 服务(TrustedInstaller)启动,用来安装更新和可选功能。在任务管理器里右键它,选打开文件所在的位置,它应该在 Windows 文件夹里面。
TiWorker.exe 占用 CPU 高会持续多久?
月度更新后,通常在安装和随后那次重启里就会平下来,功能更新要更久。电脑空闲时的活动多半是组件清理任务,一小时后会自己停。
能禁用 TrustedInstaller 来解决 CPU 占用高吗?
不安全。微软说禁用它会让 Windows 更新的安装或卸载失败,让任务跑完,重启一次,如果它还反复回来,再用 DISM 和 SFC 修复。
TrustedInstaller 为什么会让磁盘占用很高?
安装更新或添加功能时,要往组件存储里写很多文件,同时读取被替换掉的旧文件,在慢的或快满的硬盘上,这就显示成磁盘 100%,磁盘这一侧的问题看任务管理器里磁盘 100%。