What is scanAvgCPULoadFactor in Microsoft Defender Antivirus and when can it get ignored?

If you manage Windows Defender AV settings, then you probably would have come across scanAvgCPULoadFactor in same shape or form. In Intune, the setting is called 'Avg CPU Load factor' which is based of the same setting available in the GPO admx template. 'Avg CPU Load factor' is used to specify the maximum percentage of CPU usage for a scan. The acceptable values for this parameter are: integers from 5 through 100, and the value 0, which disables CPU throttling. Windows Defender does not exceed the percentage of CPU usage that you specify. The default value is 50.

While working on an implementation project for Defender for Endpoint, the customer pointed out to me that they were noticing some performance issues after onboarding to Defender for Endpoint and it was soon concluded that the issue could be due to AV scan configuration settings. 

According to Microsoft -

It is not a hard limit but rather a guidance for the scanning engine to not exceed this maximum on average. If ScanOnlyIfIdleEnabled (instructing the product to scan only when the computer is not in use) and DisableCpuThrottleOnIdleScans (instructing the product to disable CPU throttling on idle scans) are both enabled, then the value of ScanAvgCPULoadFactor is ignored.

As it turns out, this was exactly what was happening in my case and it was evidently reporting in the AV settings -


Since both ScanOnlyIfIdleEnabled DisableCpuThrottleOnIdleScans are enabled by default, the solution seems straight forward which is to disable them in favor of ScanAvgCPULoadFactor.

However, what is not straight forward is the configuration around it. With Endpoint security profiles in Intune, which are curated and tailored around device security, is usually the preferred choice of managing Defender policies in Intune. The problem is that both ScanOnlyIfIdleEnabled DisableCpuThrottleOnIdleScans are not available in the default catalog under Microsoft Defender AV profile. So what do you do? Luckily both ScanOnlyIfIdleEnabled DisableCpuThrottleOnIdleScans are available in Device configuration settings catalog and that is how you can go about configuring them.

2. Browse to Devices –> Configuration
3. Click Create Profile
4. Select Platform as Windows 10 and later
5. Select Profile type as Settings catalog
6. Provide a Name and hit next.
7. Click on Add settings.
8. Search for 'idle' and configure as shown below.

9. Assign to a device or user based group.


Once applied, the values for ScanOnlyIfIdleEnabled DisableCpuThrottleOnIdleScans will change to disable them.

Since this wasn't an obvious policy creation in Intune, I thought I will capture the details and share my experience in the hopes of saving others some time.

Thank you for reading this article. Until next time..


Popular posts from this blog

How to force escrowing of BitLocker recovery keys using Intune

Intune: Configure Printers for Non-Administrative Users

How to Whitelist apps using Applocker in Intune