Skip to main content
Microsoftintermediate

Microsoft Compatibility Telemetry High CPU: Fix CompatTelRunner.exe

Microsoft Compatibility Telemetry (CompatTelRunner.exe) at 100% CPU or disk? What it is, how to stop a runaway scan, and how to disable it safely.

12 min readUpdated August 2026

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:

SignalNormalStuck
DurationMinutes — longer on a hard drive or a machine with many apps installedHours, or never finishes
FrequencyOccasional, often after updates or a restartRestarts immediately every time you kill it
CPU patternHigh but variable, tapering offPinned flat, indefinitely
LastTaskResult0 on recent runsNon-zero, or NextRunTime in the past with nothing completing
DiskHeavy while running, then quietContinuous, 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:

  1. Open Task Manager with Ctrl + Shift + Esc
  2. Go to the Details tab
  3. 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:

  1. End the process as above, then check whether it relaunches immediately.

  2. Let Windows Update finish. Install everything pending and restart. A half-applied update is a common cause of a looping appraiser.

  3. 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.

  4. Repair system files if the above finds nothing:

    DISM /Online /Cleanup-Image /RestoreHealth
    sfc /scannow
    

    If DISM reports 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.

  5. 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.

Advertisement

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: SettingsPrivacy & securityDiagnostics & feedback → turn off Send optional diagnostic data.

Windows 10: SettingsPrivacyDiagnostics & 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.

  1. Press Win + R, type taskschd.msc, press Enter.
  2. Expand Task Scheduler LibraryMicrosoftWindowsApplication Experience.
  3. Right-click Microsoft Compatibility Appraiser and select Disable.
  4. 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.

  1. Press Win + R, type gpedit.msc, press Enter.
  2. Go to Computer ConfigurationAdministrative TemplatesWindows ComponentsData Collection and Preview Builds.
  3. Open Allow Diagnostic Data (named Allow Telemetry on Windows 10 version 1809 and earlier, and Windows Server 2019).
  4. Select Enabled, then choose the level you want from the dropdown.
  5. 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:

LevelValueAvailable on
Diagnostic data off (Security)0Enterprise, Education, and Server editions only
Required (Basic)1All supported editions — this is the default
Optional (Full)3All 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).

DataMeaning
0Diagnostic data off — Enterprise, Education, and Server only
1Required (Basic)
3Optional (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.

  1. Press Win + R, type services.msc, press Enter.
  2. Find Connected User Experiences and Telemetry.
  3. 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-ScheduledTask with the same path and name.
  • Group Policy: set Allow Diagnostic Data back to Not Configured and restart.
  • Registry: delete the AllowTelemetry value, or set it to 1, 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.

Frequently Asked Questions

Find answers to common questions

It is the Windows component that inventories your installed applications, drivers, and hardware and reports whether they will keep working after the next Windows update. Task Manager shows it as "Microsoft Compatibility Telemetry"; the underlying process is CompatTelRunner.exe. It is a normal part of Windows, not an add-on, and it runs on a schedule rather than continuously. Its findings are what let Microsoft apply compatibility holds that stop a feature update installing on hardware it would break.

CompatTelRunner.exe is the executable behind Microsoft Compatibility Telemetry. The genuine copy lives in C:\Windows\System32 and is digitally signed by Microsoft. It is launched by scheduled tasks in the Task Scheduler folder Microsoft\Windows\Application Experience, most often "Microsoft Compatibility Appraiser" and "ProgramDataUpdater". It reads a lot of files while it runs, which is why it shows up as heavy disk activity rather than a steady background process.

Because it is scanning your installed software and drivers, and that is genuinely I/O heavy. A run of several minutes after a restart or a Windows update is normal, especially on a hard drive rather than an SSD or on a machine with a lot of installed applications. What is not normal is a run that never finishes or restarts constantly. Check Task Scheduler for the task's last run result — a run that has been going for hours, or that keeps relaunching, is stuck rather than busy.

For a home or standalone PC, disabling the scheduled tasks is low risk and reversible. What you lose is the compatibility signal Microsoft uses to hold back a feature update that would break your hardware, so upgrade problems become more likely to hit you rather than being blocked in advance. On a managed or business device it is a different question — the same data feeds Windows Update reporting, Intune Endpoint analytics, and update troubleshooting, so check with whoever manages the machine first.

The real one is not. Verify it rather than guessing: in Task Manager, right-click the process and select "Open file location". It should be C:\Windows\System32\CompatTelRunner.exe. You can confirm the signature with Get-AuthenticodeSignature C:\Windows\System32\CompatTelRunner.exe in PowerShell, which should report a valid Microsoft signature. A file with this name running from any other folder — a user profile, Temp, Downloads — is not the Windows component and should be treated as suspicious.

Disable the scheduled tasks, not the registry value. Windows Home has no Group Policy Editor, and the AllowTelemetry registry value cannot turn diagnostic data off on Home or Pro — Microsoft documents value 0 as supported only on Enterprise, Education, and Server editions, and says that using it elsewhere behaves exactly the same as value 1. Open taskschd.msc, go to Task Scheduler Library > Microsoft > Windows > Application Experience, and disable the tasks there.

Because compatibility data is part of the Required diagnostic data tier, not the Optional one. Turning off "Send optional diagnostic data" in Settings drops you from Optional to Required, and application and upgrade-readiness data is inside what remains. On Windows Home and Pro, Required is the floor — there is no supported setting below it. That is why the Settings toggle never stops the appraiser, and why the scheduled tasks are the only thing that actually does.

Updates will still download and install. What changes is the safety net around them. Microsoft states that when diagnostic data is off, no Windows Update information is collected, so failures are not reported back, and its minimum recommended setting for organizations that rely on Windows Update is Required diagnostic data. Practically, disabling the appraiser makes it likelier that a feature update installs on a configuration that a compatibility hold would otherwise have protected.

No. It is a protected operating system file in System32, deleting or renaming it invites failures elsewhere, and Windows servicing restores it anyway — so you get the breakage without the benefit. Taking ownership of system binaries to force the issue is worse, because it leaves the file permissions altered after the next update puts the file back. Disable the scheduled tasks instead; it achieves the same outcome and is one click to undo.

Often not. Feature updates and some cumulative updates recreate or re-enable the Application Experience scheduled tasks, and they can reset policy values too. Treat this as something to re-check after each feature update rather than a permanent change. If the high CPU returns after an update, that is the first thing to look at, not a sign that the original fix failed.