SCCM SQL Query – Google Earth Installs

Reporting on Google Earth installations across an SCCM environment is trickier than most software, because Google Earth doesn’t reliably show up in the standard Add/Remove Programs (ARP) hardware inventory data. If you go looking in SMS_G_System_ADD_REMOVE_PROGRAMS for it, you’ll likely come up empty even on machines where it’s clearly installed. The workaround Instead of relying […]

SCCM SQL Query Google Earth Installs
Reporting on Google Earth installations across an SCCM environment is trickier than most software, because Google Earth doesn’t reliably show up in the standard Add/Remove Programs (ARP) hardware inventory data. If you go looking in SMS_G_System_ADD_REMOVE_PROGRAMS for it, you’ll likely come up empty even on machines where it’s clearly installed.

The workaround

Instead of relying on ARP data, this query uses file-level hardware inventory — specifically the SoftwareFile table — to detect the presence of googleearth.exe on disk. This requires that you’re already collecting EXE file information as part of your hardware inventory configuration; if you’re not, you’ll need to enable that first (Client Settings > Hardware Inventory > Set Classes, adding the relevant file type to the inventory).
SELECT
*
FROM v_GS_SYSTEM SYS
INNER JOIN SoftwareInventory SWI
on SYS.ResourceID = SWI.ClientId
INNER JOIN SoftwareFile SWF
on SWF.ProductId = SWI.ProductId
WHERE SWF.FileName = 'googleearth.exe'
This returns every column across the joined tables, which is useful for exploring what’s available but noisy for a real report — trim the SELECT * down to just the columns you actually need (system name, file path, file version, etc.) once you’ve confirmed the query works in your environment. The same pattern — filtering SoftwareFile.FileName for a specific executable — works for detecting any other application that doesn’t register cleanly in ARP; just swap in the exe name you’re chasing.

Still a Valid Query Pattern in 2026

v_GS_SYSTEM remains a standard, current hardware inventory view in the ConfigMgr SQL schema, and the overall join pattern — matching a system to its inventoried EXE files by filename — is still valid on the current release. One thing worth double-checking if you adapt this query yourself: current Microsoft sample queries for file-level software inventory reference the prefixed views v_GS_SoftwareProduct/v_GS_SoftwareFile rather than the bare SoftwareInventory/SoftwareFile table names used here — if this exact query doesn’t return results in your environment, try the v_GS_-prefixed view names as the first thing to check.

Resources


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.