Just a quick post on a useful command that I found online by Richard Giles and tweaked. I use this remotely to check on installed versions of products on a user’s machine:
Code
Get-ChildItem HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall |
% {Get-ItemProperty $_.PsPath} |
where {$_.Displayname -and ($_.Displayname -match “.*”)} |
sort Displayname |
select Displayname,DisplayVersion,Publisher |
ft -AutoSize
As a one-liner:
Get-ChildItem HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall | % {Get-ItemProperty $_.PsPath} | where {$_.Displayname -and ($_.Displayname -match “.*”)} | sort Displayname | select Displayname,DisplayVersion,Publisher | ft -AutoSize
Output

WMIC alternative
If you find that some entries you are expecting are missing it is likley due to them not registering an uninstaller. In this case try from an administrative command prompt:
WMIC product get name,version