Creating a script to list of installed software on multiple computers is the first important step in implementing centralized software inventory for your network. Also, this method of building a list of installed programs in the system can be useful before reinstalling the system when you need to find unwanted software. Information about installed applications should include product name, vendor, version, install path and some other data. This guide describes how to create a script to list installed software on multiple computers and save the list of installed programs to CSV file.<\/p>\n
– Launch WMI Explorer or any other tool which can run WMI queries.<\/p>\n
– Run WMI query: SELECT * FROM Win32_Product<\/p>\n<\/div>\n
– Press WIN+R<\/p>\n
– Type “wmic”, press Enter<\/p>\n
– In wmic command line tool type: /node:RemoteComputerName product<\/p>\n<\/div>\n
– thru WMI object:<\/p>\n
Get-WmiObject -Namespace ROOT\\CIMV2 -Class Win32_Product -Computer RemoteComputerName\n<\/code><\/pre>\n– thru Windows Registry:<\/p>\n
Get-ItemProperty HKLM:\\Software\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate\n<\/code><\/pre>\n– thru Get-RemoteProgram cmdlet:<\/p>\n
Get-RemoteProgram -ComputerName RemoteComputerName\n<\/code><\/pre>\n<\/div>\n\n<\/a>Step 4: Use Following Code to Select Specific Columns:<\/h3>\n– execute:<\/p>\n
Get-WmiObject -Namespace ROOT\\CIMV2 -Class Win32_Product -Computer RemoteComputerName | Select-Object Name, Version, PSComputerName\n<\/code><\/pre>\n<\/div>\n\n<\/a>Step 5: Sort the Results Using the Line Below:<\/h3>\n– invoke command:<\/p>\n
Get-WmiObject -Namespace ROOT\\CIMV2 -Class Win32_Product -Computer RemoteComputerName | Select-Object Name, Version, PSComputerName | Sort-Object Name\n<\/code><\/pre>\n<\/div>\n\n<\/a>Step 6: The Next Code Helps to Filter Results:<\/h3>\n– use it:<\/p>\n
Get-WmiObject -Namespace ROOT\\CIMV2 -Class Win32_Product -Computer RemoteComputerName | Select-Object Name, Version, PSComputerName | Where-Object -FilterScript {$_.Name -like “Microsoft*”}\n<\/code><\/pre>\n<\/div>\n