SCCM WQL Query: Finding Devices with Specific Software Installed

If you want to identify machines with a specific piece of software installed, you can query it using the Add/Remove Programs (ARP) software inventory data ConfigMgr collects from clients. The Query select distinct SMS_R_System.Name, SMS_R_System.OperatingSystemNameandVersion, SMS_R_System.ClientVersion from SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "%Software Name%" Replace %Software Name% with all […]

SCCM Wql Query For Devices With Specific Software Installed
If you want to identify machines with a specific piece of software installed, you can query it using the Add/Remove Programs (ARP) software inventory data ConfigMgr collects from clients.

The Query

select distinct SMS_R_System.Name, SMS_R_System.OperatingSystemNameandVersion, SMS_R_System.ClientVersion from SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "%Software Name%"
Replace %Software Name% with all or part of the exact display name as it appears in Add/Remove Programs — the % wildcards mean it’ll match a partial string, useful when different versions add a version number to the display name.

Worth Knowing

This depends on Add/Remove Programs inventory being enabled in your client settings (under Hardware Inventory Classes), and on clients having reported inventory recently. For 64-bit software that only shows up in the 32-bit registry view, or software that doesn’t register a proper Add/Remove Programs entry at all, this query won’t catch it — in those cases a File System or Registry-based inventory query targeting the actual install path is more reliable.

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

The SMS_G_System_ADD_REMOVE_PROGRAMS class and this join pattern remain unchanged on current Configuration Manager (2603) — no deprecation notice has been issued for this hardware inventory class. If you want the 32-bit-registry-view software this query misses on 64-bit clients, ConfigMgr also inventories a separate SMS_G_System_ADD_REMOVE_PROGRAMS_64 class covering natively-64-bit entries; running the query against both classes (or a UNION of the two) gives fuller coverage than either alone.

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.

4 thoughts on “SCCM WQL Query: Finding Devices with Specific Software Installed

Comments are closed.