SCCM Hardware inventory custom queries 1
The following SQL query retrieves key details that most customers commonly request:
- Computer
Name and Organizational Unit (OU)
- Client
Status (Active/Inactive)
- Processor
and Memory Details
- Last
Logged-On User
- Last
Hardware Scan Date
- Operating
System Version and Build
- Logical
Disk Details (Total and Free Space)
SELECT DISTINCT
s.Name0 AS ComputerName,
MAX(v_RA_System_SystemOUName.System_OU_Name0) AS 'Computer OU',
CASE
WHEN
cs.ClientActiveStatus = 1 THEN 'Active'
ELSE 'Inactive'
END AS 'ActiveClient',
cp.name0 AS [Processor Name],
v_GS_COMPUTER_SYSTEM.UserName0 AS 'Last
Logged-On User',
v_GS_WORKSTATION_STATUS.LastHWScan,
os.Caption0 AS 'OS Version',
os.BuildNumber0 AS 'OS Build',
STUFF(
(SELECT ', ' +
ld_inner.deviceid0 + ' (' + CAST(ld_inner.Size0/1024 AS VARCHAR(20)) + ' GB,
Free: ' + CAST(ld_inner.freespace0/1024 AS VARCHAR(20)) + ' GB)'
FROM
v_GS_LOGICAL_DISK AS ld_inner
WHERE
ld_inner.ResourceID = s.ResourceID
FOR XML
PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),
1, 2, ''
) AS DriveInfo,
m.TotalPhysicalMemory0 / 1000 AS MemoryMB
FROM v_R_System s
INNER JOIN v_GS_X86_PC_MEMORY m ON s.ResourceID =
m.ResourceID
INNER JOIN v_GS_PROCESSOR cp ON s.ResourceID = cp.ResourceID
INNER JOIN v_GS_OPERATING_SYSTEM os ON s.ResourceID =
os.ResourceID
LEFT JOIN v_RA_System_SystemOUName ON s.ResourceID =
v_RA_System_SystemOUName.ResourceID
LEFT JOIN v_GS_WORKSTATION_STATUS ON s.ResourceID =
v_GS_WORKSTATION_STATUS.ResourceID
LEFT JOIN v_GS_COMPUTER_SYSTEM ON s.ResourceID =
v_GS_COMPUTER_SYSTEM.ResourceID
LEFT JOIN v_CH_ClientSummary CS ON s.ResourceID =
cs.ResourceID
LEFT JOIN v_FullCollectionMembership fcm ON fcm.ResourceID =
s.ResourceID
GROUP BY
s.Name0, cp.name0, s.ResourceID,
m.TotalPhysicalMemory0,
v_GS_WORKSTATION_STATUS.LastHWScan,
v_GS_COMPUTER_SYSTEM.UserName0, cs.ClientActiveStatus,
os.Caption0, os.BuildNumber0;
This will give a result like the one below