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.Name0This 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 AmazonAs an Amazon Associate, TechyGeeksHome earns from qualifying purchases.
Discover more from TechyGeeksHome
Subscribe to get the latest posts sent to your email.