SCCM SQL Query for Hardware and Client Version Reporting

This SQL query pulls together hardware inventory details and the SCCM client version in a single result set — useful for a one-stop “machine health” report covering OS, BIOS, CPU, memory, and disk alongside the client version. The Query SELECT S.Name0 as Name, S.Client_Version0 as [Client Version], OS.Caption0 as [Operating System], CS.Manufacturer0 as Manufacturer, CS.Model0 […]

SCCM Hardware And Client Version SQL Query
This SQL query pulls together hardware inventory details and the SCCM client version in a single result set — useful for a one-stop “machine health” report covering OS, BIOS, CPU, memory, and disk alongside the client version.

The Query

SELECT
S.Name0 as Name,
S.Client_Version0 as [Client Version],
OS.Caption0 as [Operating System],
CS.Manufacturer0 as Manufacturer,
CS.Model0 as Model,
PB.SMBIOSBIOSVersion0 as BIOS,
PR.Name0 as CPU,
SUM(PM.Capacity0) as Memory,
SUM(LD.Size0) as [Disc Size],
SUM(LD.FreeSpace0) as [Disc Free]
FROM v_R_System S
join v_GS_OPERATING_SYSTEM OS on S.ResourceID = OS.ResourceID
join v_GS_PHYSICAL_MEMORY PM on S.ResourceID = PM.ResourceID
join v_GS_COMPUTER_SYSTEM CS on S.ResourceID = CS.ResourceID
join v_GS_LOGICAL_DISK LD on S.ResourceID = LD.ResourceID
join v_GS_PC_BIOS PB on S.ResourceID = PB.ResourceID
join v_GS_PROCESSOR PR on S.ResourceID = PR.ResourceID
WHERE LD.DeviceID0 = 'C:'
GROUP BY S.ResourceID, S.Name0, S.Client_Version0, OS.Caption0, CS.Manufacturer0, CS.Model0, PB.SMBIOSBIOSVersion0, PR.Name0
This scopes disk figures to the C: drive only (via the WHERE LD.DeviceID0 = 'C:' clause) to avoid multiplying rows across every logical disk on multi-disk machines. Drop that filter (and add LD.DeviceID0 to the select and group by) if you want a row per disk instead of just the system drive.

Still Current on Configuration Manager 2603 (Updated for 2026)

The full set of views this query joins — v_R_System, v_GS_OPERATING_SYSTEM, v_GS_PHYSICAL_MEMORY, v_GS_COMPUTER_SYSTEM, v_GS_LOGICAL_DISK, v_GS_PC_BIOS, and v_GS_PROCESSOR — are unchanged on current Configuration Manager, so this remains a solid one-stop machine-health query without modification. As with any hardware-inventory-driven report, results are only as fresh as the last inventory cycle (7 days by default), so cross-reference against v_R_System.AgentTime if a specific machine’s figures look stale.

Resources

🛠️

Gear We Recommend

Testing configs is easier with a dedicated admin machine set up right. Here’s the kit we use.

Browse our Windows Admin Toolkit picks on Amazon

As an Amazon Associate, TechyGeeksHome earns from qualifying purchases.


Discover more from TechyGeeksHome

Subscribe to get the latest posts sent to your email.

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.