# Microsoft Compatibility Telemetry 磁盘占用 100% 怎么办

任务管理器里的“Microsoft Compatibility Telemetry”就是 `C:\Windows\System32` 下的 `CompatTelRunner.exe`，由一个计划任务启动，用来检查这台电脑上的软件和驱动能不能兼容更新版本的 Windows，它运行时要读大量文件，在机械硬盘或者本来就忙的固态盘上，能把磁盘占用顶到 100% 好几分钟。大多数时候先让它跑完一次，再决定要不要调整它的计划时间或者诊断数据设置。

## 谁在启动它

微软讲[兼容性扫描日志的文章](https://learn.microsoft.com/en-us/troubleshoot/windows-client/setup-upgrade-and-drivers/use-windows-setup-compatibility-scan-logs-to-identify-blocking-issues)提到了这个组件，Microsoft Compatibility Appraiser 作为计划任务 `\Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser` 运行，把结果写到 `HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags` 下面，每次扫描都会写入并刷新这份兼容性信息，Windows 拿这些信息判断升级到新版本时会不会和已装的东西冲突。

所以磁盘在忙的是读，不是往盘里塞东西。离开电脑时开始的一次扫描，回来时可能还没结束，刚装完一个大软件或者刚更新过 Windows，要看的东西也会更多。

## 先确认是它在占磁盘

按 `Ctrl + Shift + Esc` 打开任务管理器，按磁盘排序，找 Microsoft Compatibility Telemetry。到“详细信息”页加上“命令行”这一列（在列标题上右键，选择“选择列”），确认程序是 `C:\Windows\System32\CompatTelRunner.exe`，同名文件出现在别的位置就不是 Windows 组件，用 Windows 安全中心扫一下。

想看它在读什么，在开始菜单输入 `resmon` 打开资源监视器，切到“磁盘”页，勾上 `CompatTelRunner.exe`，下面的“磁盘活动”会列出文件和读取速度，看到它在读 Program Files 里的程序目录、驱动存储和应用包，都是正常的。

想看它多久跑一次，打开任务计划程序，依次展开 任务计划程序库 › Microsoft › Windows › Application Experience，选中 Microsoft Compatibility Appraiser，“上次运行时间”“下次运行时间”两列和“触发器”页就是这台电脑上的计划。

## 先让它跑完一次

电脑别关，等几分钟，扫描结束后进程会退出，磁盘曲线也会落回去。如果每天都在不合适的时间跑，那是计划时间的问题，不是故障。

如果 Compatibility Telemetry 已经退出，磁盘还是 100%，原因在别处，可以看 [任务管理器里磁盘 100%](/zh/windows/blog/windows-disk-100-percent)。觉得这次扫描特别重的话，最常见的原因是机械硬盘，同样的读取在固态盘上几乎感觉不到，在机械盘上就能让磁盘一直忙着。

## 选择发给微软多少诊断数据

Windows 11 给普通用户的诊断数据只有必需和可选两档，微软的[诊断数据说明](https://learn.microsoft.com/en-us/windows/privacy/configure-windows-diagnostic-data-in-your-organization)里写着它们以前叫基本和完整，以前的“增强”这一档在 Windows 11 上已经没有了。只想发送必需的部分，打开 设置 › 隐私和安全性 › 诊断和反馈，关掉“发送可选诊断数据”，公司或学校的电脑可能由策略统一设置，这时页面会提示某些设置由组织管理。

这个开关只管发给微软的内容，单关掉它，兼容性评估任务照样按计划运行。

## 可以禁用这个任务，但有代价

自己管理的电脑，可以在任务计划程序里右键 Microsoft Compatibility Appraiser，选择“禁用”，以后想恢复再选“启用”。代价是 Windows 不再刷新这台电脑的兼容性记录，而推送功能更新之前它要靠这份记录判断，微软论坛上也有用户说大版本更新之后这个任务又变回了启用，所以功能更新后再看一眼，别默认它一直是关着的。

比禁用代价小的是改触发时间，“触发器”页能看到它什么时候运行，晚上不关机的电脑，扫描就在没人用的时候做完了。改了任务的话，记下改了什么，方便以后改回去。

## 不要这样做

- 不要删除或重命名 `CompatTelRunner.exe`，它是归 TrustedInstaller 所有的 Windows 组件，删它要先取得系统文件的所有权，后面的更新或修复还可能把它装回来。
- 不要为了停一个扫描就跑一次性关掉几十个服务和任务的“精简”脚本，改了什么自己都记不清，有些改动还会弄坏 Windows 更新。
- 不要在任务管理器里反复结束这个进程，下一次计划运行还会把它拉起来，被打断的扫描下次还得重做。

## Mole 能做什么

Mole for Windows 不会改诊断数据设置，也不会动 Windows 自己的计划任务，它的启动项列表只列 `\Microsoft\Windows` 以外的任务，所以 Compatibility Appraiser 根本不会出现在那里让你关。它运行的时候，状态页的进程列表会显示 Microsoft Compatibility Telemetry 和它的 CPU、内存占用，在这一行的菜单里选“为什么在运行？”，能看到程序文件和启动它的进程，“在文件资源管理器中显示”会打开它所在的文件夹，正好做上面那一步位置检查。因为它是从 Windows 文件夹运行的，Mole 不会给它提供“终止”。任务管理器里别的名字，可以看 [Windows 进程逐个解释](/zh/windows/blog/windows-processes-explained)。

## 常见问题

### Microsoft Compatibility Telemetry 是病毒吗？

真正的程序是 `C:\Windows\System32` 下的 `CompatTelRunner.exe`，由 Microsoft Compatibility Appraiser 计划任务启动，同名文件出现在别的位置就用杀毒软件扫一下。

### Microsoft Compatibility Telemetry 为什么磁盘占用这么高？

它要读已装的程序和驱动，刷新 Windows 的兼容性记录，在机械硬盘上，这些读取能让磁盘保持 100% 好几分钟，直到这次扫描结束。

### 可以禁用 Microsoft Compatibility Telemetry 吗？

自己的电脑可以在任务计划程序里禁用 Microsoft Compatibility Appraiser 任务，以后也能重新启用，代价是 Windows 不再刷新功能更新前要用的兼容性数据。

### 关掉可选诊断数据能让它不再运行吗？

关掉以后 Windows 只发送必需的诊断数据，但计划好的兼容性评估不会因此停下来。


Canonical: https://mole.fit/zh/windows/blog/microsoft-compatibility-telemetry-high-disk-windows
