Step-By-Step: Forcing a Full Hardware Inventory for SCCM
Here is a quick Step-By-Step in regards to forcing a full System Center 2012 (or 2007) Configuration Manager inventory cycle on a client PC.
Click Connect.
In the Namespace text box enter root\ccm\invagt, then click Connect.
Click Enum Classes.
Select Recursive then click OK.
Locate InventoryActionStatus and double click it.
Click Instances.
Select the appropriate inventory GUID (hardware in my example) that you want to reset inventory for, click Delete, then close wbemtest.
When the next hardware inventory cycle runs, it will perform a full inventory cycle.
This table will translate the GUIDs to their inventory type.
Inventory Action
GUID ID
Hardware Inventory
{00000000-0000-0000-0000-000000000001}
Software Inventory
{00000000-0000-0000-0000-000000000002}
Data Discovery Record
{00000000-0000-0000-0000-000000000003}
File Collection
{00000000-0000-0000-0000-000000000010}
Validate that the Configuration Manager (CM) agent is doing a full inventory.
After the hardware inventory runs, open InventoryAgent.log using CMTrace for CM12 or Tracer32 for CM07. Locate the start of the inventory cycle. Notice that the GUID is listed and notice that it says, “…will do a Full report (red arrow).” This confirms that a full inventory was performed.
Comments
- Anonymous
March 31, 2017
For anyone interested, I've written a PowerShell script to do this and then triggers the hardware inventory cycle:$strAction = "{00000000-0000-0000-0000-000000000001}"Get-WmiObject -Namespace "root\ccm\invagt" -Class InventoryActionStatus | where {$.InventoryActionID -eq "$strAction"} | Remove-WmiObjecttry { Invoke-WmiMethod -ComputerName $env:computername -Namespace root\ccm -Class SMS_Client -Name TriggerSchedule -ArgumentList $strAction -ErrorAction Stop | Out-Null}catch { write-host "$env:computername`: $" -ForegroundColor Red}