How to force Full Hardware Inventory on SCCM Clients
In this article, you’ll learn how to force full hardware inventory on SCCM clients. Hardware inventory is an interesting feature in configuration manager.
When you configure hardware inventory, it collects information about the hardware configuration of client devices in your organization.
Hardware inventory settings are located in the client settings. In other words Enable hardware inventory on clients setting must be enabled in client settings.
Most of all, the SCCM client agent should be installed and running fine. Hardware inventory runs on clients according to the schedule that you specify in client settings.
Once the hardware inventory is enabled, the client runs the hardware inventory cycle. Hardware inventory action cycle is listed under configuration manager client properties.
Recommended Reading: How to Configure Hardware Inventory in SCCM
Then the client sends the collected inventory information to a management point. The management point then forwards the inventory information to the site server which stores the inventory information in the site database.
As mentioned earlier Hardware inventory cycle can be initiated manually on the client computers. Also, there are various scripts to enable the hardware inventory on SCCM clients.
In this article, I will be using a wonderful tool called Right click tools by Recast. It’s an excellent tool that comes with lot of features which makes the tasks easier.
Read: Right Click Tools for ConfigMgr
How to force Full Hardware Inventory on SCCM Clients
Let’s see the steps to force full hardware inventory on SCCM Clients. Right click tools support running hardware inventory cycle on a device collection or individual computer. Right-click a Device Collection > Right click tools > Client Actions on collection > Hardware Inventory Cycle.
This will bring up the hardware inventory cycle window. When asked “Do you want to perform a full hardware inventory cycle“, click Yes to perform a full hardware inventory cycle.
If your device collection contains many devices, it may take more time to complete the hardware inventory cycle.
On completion of a hardware inventory cycle, you will see the devices on which the hardware inventory cycle ran successfully. If the device is offline, it shows up as unsuccessful.
On the client machine, open the InventoryAgent.log file using CMTrace tool or any ConfigMgr log viewer tools. You should see something as shown below.
Note that the first inventory data that the client returns is always a full inventory. Subsequent inventory information contains only delta inventory information.
Inventory: ** Start of message processing. ** InventoryAgent
Message type is InventoryAction
Temp directory = C:\Windows\CCM\Inventory\Temp\
Clearing old collected files
Opening store for action {00000000-0000-0000-0000-000000000001}
After the scan is complete, it logs the below details.
Inventory: Temp report = C:\Windows\CCM\Inventory\Temp\3b5deabf-6375-4982-b82b-49083ddf3416.xml
Reporting: 2284 report entries created.
Reporting Task completed in 0.750 seconds
Successfully sent report. Destination:mp:MP_HinvEndpoint
Cycle completed in 101.953 seconds
Inventory: Action completed.
I have a full inventory set for each night running at 9pm. I’ve noticed that some of my servers in a cluster are not updating hard drive numbers for all drives. The C and E drives report in consistently but the other 8 are weeks behind. When I spot check the servers I see the numbers are way off from the last scan. The agent is up to date with the latest version.
Is there something I need to change to get this working?
Hello,
Excellent article.
How to catch the xml before it is sent to the MP? and see its content…
Thanks,
Dom
Just Create Archive_Reports.SMS file under C:\windows\CCM\Inventory\Temp and that should catch the XML in the next H\W inventory cycle.
Just an FYI, the Right Click Tools are now under RecastSoftware.Com, not Now Micro: https://recastsoftware.com/
Hi Prajwal, Please provide powershell command for this.
How can I request an inventory using powershell for a collection?
Is there some powershell command for use in TS ?
There should be a PS command for that. If you don’t find it then let me know, i will send you the links.
How to force it in TS ? Is there som powershell command ?
Invoke-WmiMethod -Namespace root\ccm -Class sms_client -Name TriggerSchedule “{00000000-0000-0000-0000-000000000001}”