Microsoft Compatibility Telemetryのディスク使用率が高いのはなぜか
タスクマネージャーのMicrosoft Compatibility TelemetryはC:\Windows\System32にあるWindowsのプログラムCompatTelRunner.exeで、スケジュールされたタスクから起動し、このPCのアプリとドライバーが新しいWindowsで問題なく動くかを調べます。実行中は多くのファイルを読むため、ハードディスクや負荷の高いSSDではディスク使用率が数分間100%になることがあります。たいていは1回の実行が終わるのを待ち、そのうえでスケジュールや診断データの設定を変えるか決めるのが正しい対処です。
何が起動しているのか
Microsoftの互換性スキャンに関する記事は、このコンポーネントを名指ししています。Microsoft Compatibility Appraiserは\Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiserというスケジュールされたタスクとして動き、結果をHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlagsの下に書き込みます。同じ記事は、appraiserのプロセスがスキャンを実行するたびに互換性情報を書き込み、更新するとも書いています。Windowsはこの情報で、新しいバージョンがPCにインストールされているものと衝突しないかを判断します。
つまりディスクの動きは読み取りで、ドライブを埋めているわけではありません。席を外している間に始まった実行が、戻ってもまだ続いていることがあります。大きなアプリをインストールした後やWindows Updateの後は、見るものがさらに増えます。
負荷の原因がこのプロセスか確認する
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を選びます。前回の実行時刻と次回の実行時刻の列、そして「トリガー」タブに、このPCでのスケジュールが出ます。
1回の実行が終わるまで待つ
PCをつけたまま数分待ちます。実行が終わるとプロセスは終了し、ディスクのグラフは元に戻ります。毎日都合の悪い時間に起きるなら、それは故障ではなくスケジュールの問題です。
Compatibility Telemetryが終わってもディスク使用率が100%のままなら、原因はほかにあります。残りはタスクマネージャーでディスクが100%で扱っています。このスキャンが重く感じられる理由は、たいていハードディスクです。SSDなら気づかない読み取りでも、回転するディスクは忙しくなります。
Windowsが送る診断データの量を選ぶ
Windows 11でユーザーが選べる診断データのレベルは、必須とオプションの2つです。Microsoftの診断データのリファレンスには必須(旧Basic)とオプション(旧Full)が載っていて、旧EnhancedレベルはWindows 11にないとも書かれています。必須だけを送るには、設定 › プライバシーとセキュリティ › 診断とフィードバックを開き、オプションの診断データを送信するをオフにします。職場や学校のPCではポリシーで設定されていることがあり、その場合は一部の設定が組織によって管理されていると表示されます。
この設定が変えるのは、Microsoftに送られる内容です。これだけで、appraiserのタスクが予定どおり実行されなくなるわけではありません。
タスクの無効化は可能だが引き換えがある
自分で管理しているPCでは、タスクスケジューラでMicrosoft Compatibility Appraiserを右クリックして「無効にする」を選べます。「有効にする」で元に戻せます。引き換えに、WindowsはこのPCの互換性の記録を更新しなくなります。これは機能更新プログラムを提示する前にWindowsが頼る情報です。Microsoftのフォーラムには、更新後にタスクが有効に戻ったという報告もあるため、機能更新の後はオフのままだと思い込まずに確認し直してください。
無効にするより穏やかなのは、トリガーを動かすことです。「トリガー」タブで起動時刻が分かり、夜通し電源を入れたままのPCなら、誰も使っていない間にスキャンが走ります。タスクを変更したら、元に戻せるよう何を変えたかを控えておいてください。
やってはいけないこと
CompatTelRunner.exeを削除したり名前を変えたりしないでください。TrustedInstallerが所有するWindowsのコンポーネントで、削除にはシステムファイルの所有権を取る必要があり、後の更新や修復で復元されることもあります。- 1回のスキャンを止めるために、何十ものサービスとタスクを一度に無効にする「debloat」スクリプトを実行しないでください。何が変わったか分からなくなり、Windows Updateを壊すものもあります。
- タスクマネージャーでこのプロセスを何度も終了しないでください。次のスケジュールでまた起動し、中断された実行は最初からやり直しになります。
Moleでできること
Mole for Windowsは、診断データの設定もWindows自身のスケジュールされたタスクも変更しません。スタートアップの一覧が扱うのは\Microsoft\Windowsの外にあるタスクなので、Compatibility Appraiserはそこに現れず、オフにもできません。「ステータス」ページのプロセス一覧には、実行中のMicrosoft Compatibility TelemetryがCPUとメモリとともに表示されます。行のメニューから「なぜ実行中?」を選ぶとプログラムファイルとそれを起動したプロセスが表示され、「エクスプローラーで表示」はフォルダーを開くので、上の場所の確認に使えます。Windowsフォルダーから動いているため、Moleはこれに「終了」を出しません。タスクマネージャーのほかの名前については、Windowsのプロセスを解説を見てください。
よくある質問
Microsoft Compatibility Telemetryはウイルスですか?
正規のプログラムはC:\Windows\System32にあるCompatTelRunner.exeで、Microsoft Compatibility Appraiserのスケジュールされたタスクから起動します。ほかの場所にある同名のファイルはスキャンしてください。
Microsoft Compatibility Telemetryのディスク使用率が高いのはなぜですか?
インストールされているプログラムとドライバーを読み、Windowsの互換性の記録を更新しているためです。ハードディスクでは、この読み取りが実行の終わるまで数分間ディスクを100%に保つことがあります。
Microsoft Compatibility Telemetryを無効にできますか?
自分のPCなら、タスクスケジューラでMicrosoft Compatibility Appraiserのタスクを無効にでき、後で有効に戻せます。そうすると、Windowsは機能更新の前に使う互換性データの更新をやめます。
オプションの診断データをオフにすると止まりますか?
Windowsが送る内容は必須のものだけになります。それだけで、スケジュールされた評価の実行が止まるわけではありません。