wmic product get does not get all programs

When I use

wmic product get name name,version

I get a list where are showed all programs installed on my PC, but still there are not all programs listed. When I go to control panel > Uninstall programs I see more programs


Solution 1:

Per Microsoft: The Win32_Product WMI class represents products as they are installed by Windows Installer (AKA .MSI installer files, msiexec)

Since there are other installers/software-packagers (InstallShield, Wise, NSIS [Nullsoft Scriptable Install System]) that apparently don't register themselves in WMI (since they may predate it) I guess we have to query in multiple locations :(. Standards are changing, as IT always is so this is just the reality we have to deal with. As you've already mentioned in a comment you can query the registry in these locations for all the other apps: HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall & HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

I guess WMI queries registry at this location: HKEY_CLASSES_ROOT\Installer\Products

Here are some links with additional info:

  • https://stackoverflow.com/questions/673233/wmi-installed-query-different-from-add-remove-programs-list
  • https://blogs.technet.microsoft.com/heyscriptingguy/2011/11/13/use-powershell-to-quickly-find-installed-software/