SCCM Inactive Clients: A WQL Query to Find Every One

This WQL query builds a Configuration Manager collection of clients that ConfigMgr considers inactive — useful for finding stale device records that may need investigating, re-imaging, or decommissioning from your database. The Query 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_CH_ClientSummary on SMS_G_System_CH_ClientSummary.ResourceID = SMS_R_System.ResourceId where SMS_G_System_CH_ClientSummary.ClientActiveStatus = 0 How to […]

SCCM Wql Query All Inactive Clients
This WQL query builds a Configuration Manager collection of clients that ConfigMgr considers inactive — useful for finding stale device records that may need investigating, re-imaging, or decommissioning from your database.

The Query

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_CH_ClientSummary on SMS_G_System_CH_ClientSummary.ResourceID = SMS_R_System.ResourceId where SMS_G_System_CH_ClientSummary.ClientActiveStatus = 0

How to Use It

  1. In the Configuration Manager console, go to Assets and Compliance > Device Collections and create a new collection.
  2. On the Membership Rules page, add a Query Rule, click Edit Query Statement, switch to the Query Language tab, and paste the WQL above in place of the default.
  3. Set a sensible refresh schedule (daily is typical) so the collection stays current as devices go active/inactive.
ClientActiveStatus = 0 reflects ConfigMgr’s own client activity evaluation, which is based on heartbeat discovery and client policy requests within the site’s configured thresholds — check Client Status settings under Site Configuration if you want to tune what counts as “inactive” before relying on this collection for cleanup decisions.

Still the Right Query on Current Configuration Manager (Updated for 2026)

The SMS_G_System_CH_ClientSummary hardware-inventory class and its ClientActiveStatus flag are unchanged on current Configuration Manager (2603), so this query runs as-is with no adjustment needed. Two practical additions worth pairing it with: before acting on the results (re-imaging, decommissioning), cross-check against Monitoring > Client Status in the console, since a client can look inactive here due to a stalled heartbeat cycle rather than a genuinely offline machine — the console’s own Client Activity dashboard trends this over time and is a useful second opinion before you commit to bulk cleanup. It’s also worth adding SMS_G_System_CH_ClientSummary.LastActiveTime to the query’s selected columns if you want to sort the resulting collection by how long each device has actually been inactive, rather than treating the whole list as equally stale.
🛠️

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.