There are various methods to find installed applications on the system but to my knowledge none returns exactly the same list as control panel item Add Remove Programs. Some of the ways I tried are:
- WMI via Win32_Product and Win32Reg_AddRemovePrograms
- Registry, both x32 and x64 branches
For instance, I have 217 entries in AR and
gwmi Win32_Product
returns 261 items.
gp HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*, HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | ? {![string]::IsNullOrWhiteSpace($_.DisplayName) } | select DisplayName
returns 119 items.
(gwmi Win32Reg_AddRemovePrograms) + (gwmi Win32Reg_AddRemovePrograms64) | sort DisplayName -Unique
returns 107 items.
I tried to nail it down with more complex filter that included InstallLocation
, InstallSource
, InstallDate
etc without success.