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

 

A screenshot of a computer

AI-generated content may be incorrect.

 

 

 

Popular Posts

Deploying a Script through Intune to a Linux PC

Windows 11 24H2 Upgrade using Intune Feature Updates Policy

Removing Obsolete Computer Records from Active Directory Using PowerShell (Only Windows Client Versions)

Deploying Software Update Scan Cycle via SCCM using a Batch File