SCCM Hardware Inventory — Custom Classes and Collections (2026)

SCCM hardware inventory collects detailed information about hardware components across all managed devices — CPU, RAM, disk, graphics card, BIOS version and more. This guide covers how to extend the default hardware inventory with custom WMI classes and how to create custom inventory reports in 2026. Understanding SCCM Hardware Inventory SCCM hardware inventory uses WMI […]

SCCM Hardware Inventory — Custom Classes and Collections

SCCM hardware inventory collects detailed information about hardware components across all managed devices — CPU, RAM, disk, graphics card, BIOS version and more. This guide covers how to extend the default hardware inventory with custom WMI classes and how to create custom inventory reports in 2026.

Understanding SCCM Hardware Inventory

SCCM hardware inventory uses WMI (Windows Management Instrumentation) to collect data from client machines. The collected data is stored in the SCCM database and can be queried for reports, collections and compliance rules. By default SCCM collects approximately 50 WMI classes — but you can add custom classes to collect any WMI data available on your clients.

Enable Additional Hardware Inventory Classes

  1. In the SCCM console go to Administration → Client Settings
  2. Open your default or custom client settings
  3. Go to Hardware Inventory
  4. Click Set Classes
  5. Browse the list of available WMI classes and enable the ones you need
  6. Common useful classes to enable:
    • Win32_VideoController — GPU details
    • Win32_Battery — laptop battery status
    • Win32_TPM — TPM chip details
    • SMS_Firmware — UEFI/BIOS details
    • Win32_NetworkAdapter — network adapter details

Add a Custom WMI Class to Hardware Inventory

  1. In Client Settings → Hardware Inventory → Set Classes click Add
  2. Click Connect and enter a machine name that has the WMI class you want to inventory
  3. Browse the WMI namespace (default is rootcimv2) and find your class
  4. Select the class and the properties you want to collect
  5. Click OK

Query Hardware Inventory Data via PowerShell

# Query hardware inventory data from SCCM via WMI
# Run on SCCM site server

# Get all computers with less than 8GB RAM
Get-WmiObject -Namespace "root\SMS\site_XXX" -Query "SELECT Name, TotalPhysicalMemory FROM SMS_G_System_COMPUTER_SYSTEM WHERE TotalPhysicalMemory < 8589934592" |
    Select-Object Name, @{N="RAM_GB";E={[math]::Round($_.TotalPhysicalMemory/1GB,1)}}

# Get all computers with a specific CPU
Get-WmiObject -Namespace "root\SMS\site_XXX" -Query "SELECT Name, Name0 FROM SMS_G_System_PROCESSOR WHERE Name0 LIKE '%i7%'" |
    Select-Object Name, Name0

Force Hardware Inventory on a Client

# Force hardware inventory cycle on local machine
Invoke-WmiMethod -Namespace rootccm -Class SMS_Client -Name TriggerSchedule -ArgumentList "{00000000-0000-0000-0000-000000000001}"

# Force on a remote machine
Invoke-Command -ComputerName PC001 -ScriptBlock {
    Invoke-WmiMethod -Namespace rootccm -Class SMS_Client -Name TriggerSchedule -ArgumentList "{00000000-0000-0000-0000-000000000001}"
}

Create a Collection Based on Hardware Inventory

Hardware inventory data can be used to create dynamic device collections. For example, create a collection of all machines with less than 8GB RAM for a RAM upgrade project:

-- WQL query for SCCM collection - computers with less than 8GB RAM
select SMS_R_SYSTEM.ResourceID, SMS_R_SYSTEM.ResourceType, SMS_R_SYSTEM.Name, SMS_R_SYSTEM.SMSUniqueIdentifier, SMS_R_SYSTEM.ResourceDomainORWorkgroup, SMS_R_SYSTEM.Client 
from SMS_R_System 
inner join SMS_G_System_X86_PC_MEMORY on SMS_G_System_X86_PC_MEMORY.ResourceID = SMS_R_System.ResourceId 
where SMS_G_System_X86_PC_MEMORY.TotalPhysicalMemory < 8000000

Andrew Armstrong

Andrew Armstrong is a UK-based IT professional with 26+ years of hands-on experience in Windows, Windows Server, SCCM/ConfigMgr, Active Directory, PowerShell, and enterprise infrastructure.

He founded TechyGeeksHome in 2010 and has published over 1,500 practical guides covering real-world IT problems and solutions. When not solving IT problems,

Andrew develops free Windows utilities including Ultimate Settings Panel, which has been downloaded over 850,000 times.

Leave a Reply

Your email address will not be published. Required fields are marked *