You opened Task Manager because the fan was loud, and something called Microsoft Compatibility Telemetry was sitting at the top of the list. This guide explains what that process is, how to tell a normal scan from a stuck one, how to stop the run that is happening right now, and — if you decide you want it gone — how to disable it in order from least invasive to most, with an honest account of what each option costs you.
One thing to get out of the way early, because it is the reason most guides on this topic do not work: turning off diagnostic data in Settings does not stop this process. The section on why it still runs explains why.
What Is Microsoft Compatibility Telemetry?
It is the part of Windows that takes an inventory of your machine and works out whether the next Windows update will break anything on it. Specifically, it collects:
- Which applications are installed and whether they have known compatibility problems
- Which drivers are present and how they behave
- Hardware attributes — processor, memory, storage, firmware — against the minimum requirements of the next Windows version
- Connected accessories such as printers and external storage, and whether they will survive an upgrade
That inventory is what powers compatibility holds: when Microsoft blocks a feature update from reaching machines with a particular driver or chipset, this is the data that identified the problem. It is a normal, built-in Windows component on Windows 10 and Windows 11, not something that was added to your PC.
It is also, importantly, not a continuous background service. It runs on a schedule, does a burst of work, and exits. If you are seeing it constantly, something is wrong — and that is a different problem from it simply being busy.
CompatTelRunner.exe: The Process in Task Manager
CompatTelRunner.exe is the executable behind the friendly name. Task Manager's Processes tab shows "Microsoft Compatibility Telemetry"; the Details tab shows the filename. They are the same thing.
Where it lives. The genuine file is:
C:\Windows\System32\CompatTelRunner.exe
What launches it. Not a service — scheduled tasks. They sit in Task Scheduler under:
Task Scheduler Library \ Microsoft \ Windows \ Application Experience
The tasks in that folder vary slightly by Windows version, but the ones that drive this work are Microsoft Compatibility Appraiser and ProgramDataUpdater. You can list exactly what your machine has, along with when each last ran and how it finished:
Get-ScheduledTask -TaskPath "\Microsoft\Windows\Application Experience\" |
Get-ScheduledTaskInfo |
Format-Table TaskName, LastRunTime, LastTaskResult, NextRunTime
LastTaskResult of 0 means the last run completed successfully.
When it runs. After a restart, after Windows updates install, and periodically when the machine is otherwise idle. Bursts of activity following an update are expected behavior, not a fault.
Normal run or stuck run?
This is the distinction that decides whether you need to do anything at all:
| Signal | Normal | Stuck |
|---|---|---|
| Duration | Minutes — longer on a hard drive or a machine with many apps installed | Hours, or never finishes |
| Frequency | Occasional, often after updates or a restart | Restarts immediately every time you kill it |
| CPU pattern | High but variable, tapering off | Pinned flat, indefinitely |
LastTaskResult | 0 on recent runs | Non-zero, or NextRunTime in the past with nothing completing |
| Disk | Heavy while running, then quiet | Continuous, never settles |
A genuinely normal run on an older laptop with a spinning disk and a decade of installed software can absolutely peg the machine for several minutes. That is not a malfunction, and disabling telemetry to avoid a few minutes after each update is a trade worth making consciously rather than reflexively.
Is it malware?
The real one is not, but the name is a plausible thing for malware to borrow, so check rather than assume. Right-click the process in Task Manager and choose Open file location — it must be C:\Windows\System32. Then confirm the signature:
Get-AuthenticodeSignature C:\Windows\System32\CompatTelRunner.exe | Format-List Status, SignerCertificate
Status should be Valid and the signer should be Microsoft. A file with this name running from a user profile, Temp, or Downloads is not the Windows component. If you want to check a suspicious copy against threat intelligence, our file hash checker will hash it locally and look the hash up.
Microsoft Compatibility Telemetry High CPU and Disk Usage
Stop the run that is happening right now
If you just need your machine back, end the process. It is safe — the task will simply run again later, and nothing is corrupted by interrupting it:
- Open Task Manager with Ctrl + Shift + Esc
- Go to the Details tab
- Select CompatTelRunner.exe and choose End task
If it relaunches within seconds, repeatedly, the task is in a failure loop and killing it will not help — move on to disabling the scheduled task.
Why it spikes
The work is inherently disk-heavy: it walks installed software and driver metadata rather than doing one tidy query. Things that make it much worse:
- A mechanical hard drive rather than an SSD. This is the single biggest factor.
- A large number of installed applications, particularly on machines upgraded across several Windows versions.
- Running at the same time as something else heavy — Windows Update, an antivirus full scan, or search indexing. Two disk-bound jobs competing turn a five-minute run into an hour.
- Real-time antivirus scanning every file the appraiser touches. Some third-party AV products effectively double the I/O.
- A pending or partially failed Windows update, which can leave the task retrying.
Before blaming the appraiser, confirm which process is actually burning the CPU. MoUsoCoreWorker.exe is the other Windows Update-related process that pins a core and, unlike CompatTelRunner, also keeps the machine awake — if your PC will not sleep as well as running hot, that is the one to look at.
When it is stuck rather than busy
If LastTaskResult is non-zero, or the process has been running for hours:
-
End the process as above, then check whether it relaunches immediately.
-
Let Windows Update finish. Install everything pending and restart. A half-applied update is a common cause of a looping appraiser.
-
Check disk health — a failing drive turns a routine scan into an endless one. Run
chkdsk C: /scan, which is read-only and safe to run on a live system. -
Repair system files if the above finds nothing:
DISM /Online /Cleanup-Image /RestoreHealth sfc /scannowIf
DISMreports that the component store itself is damaged, you are looking at the same fault behind error 0x80073712 (ERROR_SXS_COMPONENT_STORE_CORRUPT), which needs a repair source before any update — or this appraiser task — will complete cleanly. -
Then disable the task if it still misbehaves. A permanently stuck appraiser is not giving you the compatibility protection anyway, so you are not losing much by turning it off.
Why It Still Runs After You Turned Off Diagnostic Data
This is the part that sends people in circles, and it is worth understanding before you try any of the disable options.
Windows diagnostic data has tiers. Microsoft's current names are Diagnostic data off (Security), Required (Basic), and Optional (Full). Compatibility data — installed applications, driver behavior, and whether the device meets the requirements for the next Windows version — sits in the Required tier.
That has two consequences:
- The Settings toggle cannot help you. Turning off "Send optional diagnostic data" moves you from Optional down to Required. Everything the appraiser collects is still in scope.
- On Windows Home and Pro, Required is the floor. Microsoft documents the "off" value as available only on Enterprise, Education, and Server editions, and states that setting it on other editions behaves identically to Required. There is no supported way to go below Required on a consumer edition.
So on Home and Pro, the only thing that actually stops CompatTelRunner.exe from running is disabling its scheduled tasks. The policy and registry routes below change what is sent, not whether the scan happens — which is a real distinction the older guides on this topic tend to blur.
Before You Disable It: What You Actually Lose
Be clear-eyed about the trade, because it is not "nothing":
- Compatibility holds stop protecting you. These holds are the mechanism that prevents a feature update from installing onto a machine with a driver or chipset known to break under it. Without the appraiser's inventory, your machine is likelier to take an update it should not have.
- Update failures stop being reported. Microsoft's own guidance is that where an organization relies on Windows Update, Required diagnostic data is the minimum recommended setting, because with data off, no Windows Update information is collected and failure causes go unreported.
- Managed-device features break. Intune Endpoint analytics and Windows Update reporting depend on this data flowing. On a work machine, this is your IT department's decision, not yours.
- Updates can undo it. Feature updates commonly recreate or re-enable these scheduled tasks.
What you do not lose: Windows Update itself keeps working, security updates keep installing, and nothing about your machine becomes unsupported.
If your actual problem is a few noisy minutes after each Windows update, the honest answer is that leaving it alone is reasonable. The rest of this guide is for when it is genuinely misbehaving or you have decided the privacy trade is worth it.
Option 1: Turn Down Diagnostic Data in Settings (Least Invasive)
Start here, because it is the only option that requires no administrative surgery — and be aware of its limit.
Windows 11: Settings → Privacy & security → Diagnostics & feedback → turn off Send optional diagnostic data.
Windows 10: Settings → Privacy → Diagnostics & feedback → select Required diagnostic data.
What this does: reduces what leaves your machine from Optional to Required. Browsing and app-activity data, diagnostic logs, and full crash dumps stop being sent.
What it does not do: stop CompatTelRunner.exe. As explained above, compatibility data lives in the Required tier. Do this for the privacy benefit; do not expect it to fix high CPU.
Option 2: Disable the Application Experience Scheduled Tasks
This is the option that actually stops the process, and it is the right first move for high CPU on any edition of Windows, including Home. It is also trivially reversible.
- Press Win + R, type
taskschd.msc, press Enter. - Expand Task Scheduler Library → Microsoft → Windows → Application Experience.
- Right-click Microsoft Compatibility Appraiser and select Disable.
- Do the same for ProgramDataUpdater if it is present.
Or from an elevated PowerShell prompt:
Disable-ScheduledTask -TaskPath "\Microsoft\Windows\Application Experience\" -TaskName "Microsoft Compatibility Appraiser"
Disable-ScheduledTask -TaskPath "\Microsoft\Windows\Application Experience\" -TaskName "ProgramDataUpdater"
Two things to expect:
- Access denied is possible even as an administrator. On recent Windows builds some of these tasks are owned by the system and protected. If a task refuses to be disabled, leave it — do not go hunting for ownership workarounds, which leave permissions altered after the next update restores the task anyway.
- This can be undone by Windows Update. Re-check the folder after each feature update.
What you lose: the compatibility scan stops running, so upgrade-readiness data stops being gathered. Diagnostic data settings are otherwise unchanged.
Option 3: Group Policy — Allow Diagnostic Data (Pro, Enterprise, Education)
This controls the diagnostic data level. It does not stop the appraiser on Pro, for the reasons above, but it is the correct, supported, centrally manageable control on Enterprise and Education.
- Press Win + R, type
gpedit.msc, press Enter. - Go to Computer Configuration → Administrative Templates → Windows Components → Data Collection and Preview Builds.
- Open Allow Diagnostic Data (named Allow Telemetry on Windows 10 version 1809 and earlier, and Windows Server 2019).
- Select Enabled, then choose the level you want from the dropdown.
- Restart.
Do not set this policy to "Disabled". This is the most common mistake in guides on this topic. Per Microsoft's documentation, disabling or not configuring the policy means the device sends Required diagnostic data and the user can choose whether to send Optional — that is to say, "Disabled" restores the default rather than turning telemetry off. To reduce data collection you must select Enabled and then pick the lower level.
The levels available:
| Level | Value | Available on |
|---|---|---|
| Diagnostic data off (Security) | 0 | Enterprise, Education, and Server editions only |
| Required (Basic) | 1 | All supported editions — this is the default |
| Optional (Full) | 3 | All supported editions |
On Pro, the lowest you can meaningfully select is Required. The "off" option is not supported there.
Two companion policies in the same folder, useful when you want to keep Optional but reduce what it includes: Limit Dump Collection and Limit Diagnostic Log Collection. There is also Configure diagnostic data opt-in settings user interface, which stops users changing the level in the Settings app.
Option 4: Registry — AllowTelemetry (Windows Home)
Windows Home has no Group Policy Editor, so the equivalent change is made directly in the registry. Back up the registry or create a restore point first.
Key:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DataCollection
Value: AllowTelemetry, type DWORD (32-bit).
| Data | Meaning |
|---|---|
0 | Diagnostic data off — Enterprise, Education, and Server only |
1 | Required (Basic) |
3 | Optional (Full) |
Create the DataCollection key if it does not exist, add the DWORD, set it, and restart.
The honest caveat, and the reason most guides mislead here: setting AllowTelemetry to 0 on Windows Home or Pro does not turn diagnostic data off. Microsoft documents that value as applicable only to Enterprise, Education, and Server editions, and states that using it on other devices is equivalent to setting the value of 1. If you are on Home, 0 and 1 produce the same result. It will not stop CompatTelRunner.exe, and it will not reduce you below Required.
If you are on Home and your goal is stopping the high CPU, Option 2 is the one that works.
Option 5: Disabling the Connected User Experiences and Telemetry Service (Last Resort)
The Connected User Experiences and Telemetry service (DiagTrack) is the component that transmits diagnostic data. Disabling it is widely recommended online and is the most invasive option here — which is why it is last.
- Press Win + R, type
services.msc, press Enter. - Find Connected User Experiences and Telemetry.
- Set Startup type to Disabled, then Stop the service.
Why this is a last resort:
- It is a blunt instrument. It stops the transmission channel rather than the scanning, so it is not a targeted fix for high CPU — the appraiser tasks can still run.
- On a managed device it breaks reporting features that IT may depend on, including Intune Endpoint analytics and Windows Update reporting. (Modern Defender for Endpoint no longer has a hard dependency on this service, but device reporting is still expected to have it running.)
- Windows servicing may re-enable it.
If you are on a work machine, do not do this without asking. If you are on a personal machine and Options 1 and 2 solved your problem, you do not need this at all.
Will This Survive a Windows Update?
Frequently not, and you should plan for that rather than be surprised by it:
- Scheduled tasks are the most likely to come back. Feature updates recreate the Application Experience folder contents, and some cumulative updates re-enable individual tasks.
- Policy and registry values usually persist, but a feature update can reset policy state, and an in-place upgrade rewrites more than a monthly update does.
- Service startup type generally persists but is not guaranteed.
The practical habit: after each feature update, if the fan gets loud again, check Task Scheduler first. It is almost always the tasks having been re-enabled, not a new problem.
How to Re-enable Everything
Every option above is reversible:
- Scheduled tasks: right-click each task in Application Experience and select Enable, or run
Enable-ScheduledTaskwith the same path and name. - Group Policy: set Allow Diagnostic Data back to Not Configured and restart.
- Registry: delete the
AllowTelemetryvalue, or set it to1, and restart. - Service: set Connected User Experiences and Telemetry back to Automatic (Delayed Start) and start it.
- Settings: turn Send optional diagnostic data back on.
Worth doing before a major Windows upgrade: re-enabling the appraiser lets Windows check your hardware and drivers properly before a feature update installs, which is precisely the protection you gave up.