Skip to main content

CM Disable Inventory Throttling

Update to this previous blog: 

That blog entry, from 2013, was written in vbscript.  This is updated to be powershell, and to ensure that the local policy override is 'the latest version' so that it does end up being the policy in place for 'actual' settings.

Although the default for Software Inventory (File Inventory) is disabled in ConfigMgr; you perhaps have enabled Software Inventory for file inventory.  If you've done so... have you noticed that on some clients it can take hours and hours and HOURS before it finishes?  Or even on some clients it never finishes; just exits with a message that it will retry later? "The system cannot continue. Cycle will be aborted and retried."  will be in the inventoryagent.log .

There's a local policy override that you can set, on each of your clients, to change the default of inventory throttling from TRUE to FALSE.  Inventory throttling, in this case, is when you have multiple software inventory rules, like perhaps... to inventory *.exe from %programfiles%, and then another one for *.exe from c:\SomeLocalFolder.  and inbetween rule 1 and rule 2 it waits several hours to move from rule 1 to rule 2 in the inventoryagent.log

Here's a way to quickly implement (and quickly undo, if you need to) this local policy override.

--> Attached <-- are two Configuration Items you can import into your Console (rename them from .RenameToCab).  The only one you actually need is the one called "CM Client Disable Inventory Throttling".

Additionally, as .RenameToPS1, are the scripts inside the Configuration Items, in case you want to just look at them, or make your own CI.

In your CM Console, Assets and Compliance, Compliance Settings, Compliance Baselines, import that .cab file.  Now that you have it, deploy it to a test collection.  You may want to target a group of computers which you know are exhibiting the behavior in their local inventoryagent.log as mentioned above.  Make sure when you deploy the baseline, that you DO check the box about remediate.

Because software (aka, File) inventory is (in general) slow... you may want to wait a few days to see that this baseline does what you expect it to do.  Once you are satisfied with the results, it is up to you if you want to deploy this Local Policy Override to all of your Windows systems in CM.

If, at some future time, you want to take away this local policy override, import the Configuration Item "CM Client Remove Local Policy Override for Inventory Throttling".  Obviously remove the deployment of the original; and deploy the Delete.  (if both are deployed at the same time to the same machines...  those machines will get and remove, remove and then get, the local policy override... just messy.)

Thanks to Robert Hastings and Microsoft for the local policy override syntax!

SCCM, ConfigMgr

  • Created on .