# 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%](/tw/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 Update。
- 不要在工作管理員裡反覆結束這個處理程序，下一次排程執行還會把它拉起來，被打斷的掃描下次還得重做。

## Mole 能做什麼

Mole for Windows 不會改診斷資料設定，也不會動 Windows 自己的排程工作，它的啟動項目清單只列 `\Microsoft\Windows` 以外的工作，所以 Compatibility Appraiser 根本不會出現在那裡讓你關。它執行的時候，「狀態」頁面的處理程序清單會顯示 Microsoft Compatibility Telemetry 和它的 CPU、記憶體用量，在這一列的選單裡選「為什麼在執行？」，能看到程式檔案和啟動它的處理程序，「在檔案總管中顯示」會開啟它所在的資料夾，正好做上面那一步位置檢查。因為它是從 Windows 資料夾執行的，Mole 不會給它提供「結束」。工作管理員裡別的名字，可以看 [Windows 處理程序逐個解釋](/tw/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/tw/windows/blog/microsoft-compatibility-telemetry-high-disk-windows
