How to Script to List Installed Software on Multiple Computers

Author: Peter Barnett           Date: Oct 19, 2018


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.




Manually:

1. Execute WMI Query in ROOT\CIMV2 Namespace:

   - Launch WMI Explorer or any other tool which can run WMI queries.
   - Run WMI query: SELECT * FROM Win32_Product

2. Open WMIC Command-line Interface:

   - Press WIN+R
   - Type "wmic", press Enter
   - In wmic command line tool type: /node:RemoteComputerName product

3. Run This Simple Windows Powershell Script:

   - thru WMI object: Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Product -Computer RemoteComputerName
   - thru Windows Registry: Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate
   - thru Get-RemoteProgram cmdlet: Get-RemoteProgram -ComputerName RemoteComputerName

4. Use Following Code to Select Specific Columns:

   - execute: Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Product -Computer RemoteComputerName | Select-Object Name, Version, PSComputerName

5. Sort the Results Using the Line Below:

   - invoke command: Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Product -Computer RemoteComputerName | Select-Object Name, Version, PSComputerName | Sort-Object Name

6. The Next Code Helps to Filter Results:

   - use it: Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Product -Computer RemoteComputerName | Select-Object Name, Version, PSComputerName | Where-Object -FilterScript {$_.Name -like "Microsoft*"}

7. Save Results to CSV File:

   - run: Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Product -Computer RemoteComputerName | Select-Object Name, Version, PSComputerName | Export-CSV "c:\file.csv" -Append -NoTypeInformation

8. The Next Step Is to Query Multiple Computers:

   - computers from a text file: Get-Content -Path c:\computers.txt | ForEach-Object {Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Product -Computer $_}
   - computers from AD domain: Get-ADComputer -Filter {OperatingSystem -Like 'Windows 10*'} | ForEach-Object {Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Product -Computer $_.Name}

With Action1 Endpoint Security Platform:

Step 1 - Sign-up for Free:

  

Fully functional free edition for up to 10 endpoints with no expiration date. More details >

Step 2 - Type Your Question in Plain English:

How to create a script to list installed software on multiple computers and use powershell script to get a list of installed software on remote computer. - search query

Step 3 - Set Filters, If Necessary:

How to create a script to list installed software on multiple computers and use powershell script to get a list of installed software on remote computer. - set filters

Step 4 - See Results from All Endpoints in Seconds:

Endpoint NameInstall DateNameVendorVersion
fred.widgets.local20171204Microsoft Office 2016Microsoft19.0.8482
mac.widgets.local20171204Microsoft SQL Server 2015Microsoft11.1.5839
ray.widgets.local20171204Microsoft Office 2012Microsoft17.0.3629



Action1 is a cloud-based platform for patch management, software deployment, software/hardware inventory, endpoint management and endpoint configuration reporting. It is free with basic functionality.

  

Fully functional free edition for up to 10 endpoints with no expiration date. More details >



Other Relevant How To Articles:

By continuing to use our website, you agree with our use of cookies in accordance with our Privacy Policy. You can reject cookies by changing your browser settings.     
Ok, got it