How can i List installed Software on a system?

Normally you could use something as simple as Get-Wmiobject -class Win32_product.
But in today’s security environment it becomes more difficult. I am not able to use the Get-Wmiobject across VLANS so I am looking for another way to find installed software and for that matter a good substitute for other -class in Get-Wmiobject.

This blog.explains how to use the registry to get this information, Use PowerShell to Find Installed Software - Scripting Blog.

If you have to use win32_product, you could use get-ciminstance instead so you can leverage winrm over http to get through your firewalls.


Thank you the link was very helpful. using the Get-itemproperty work really good. I was able to nested it in a -scriptblock with invoke-command. I now just need to work with it to see how I can get the information to display the way I want it.

The get-ciminstance works well on the local host but does not work when I try to remote with it.
The WS_Management service cannot process the request. A DMTF resource URI was used to access a non-DMTF Class. If I use Invoke-command and place get-ciminstance in a -script block I get the following error.
The term Get-ciminstance is not recongnized as the name of a cmdlet, function, script file, or operable program.

Thank you so much for the information.