HOWTO: Get a List of Installed Software on a Remote Computer


Creating a list of installed software on all endpoints is the first important step in implementing centralized software inventory for your network. Information about installed applications should include product name, vendor, version, install path and some other data. This HOWTO guides describes the basics of the process.



Manually:

1. Run WMI query in ROOT\CIMV2 namespace:

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

2. Run wmic command-line interface:

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

3. Run Powershell script:

   - thru WMI object: Get-WmiObject -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. Select specific columns:

   - run: Get-WmiObject -Class Win32_Product -Computer RemoteComputerName | Select-Object Name, Version

5. Sort results:

   - run: Get-WmiObject -Class Win32_Product -Computer RemoteComputerName | Select-Object Name, Version | Sort-Object Name

6. Filter results:

   - run: Get-WmiObject -Class Win32_Product -Computer RemoteComputerName | Select-Object Name, Version | Where-Object -FilterScript {$_.Name -like "Microsoft*"}

7. Save to CSV file:

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

8. Query multiple computers:

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

With Action1 Endpoint Security Platform:

Step 1 - Sign-up for free:

Step 2 - Type your question in plain English:

Step 3 - Set filters, if necessary:

Step 4 - See results from all endpoints in seconds:

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

Do not have time to write scripts? Check out Action1 Endpoint Security Platform.
Ask questions in plain English such as "list of installed software" or "all running processes". Get answers instantly from live systems:


Other Relevant HOWTOs: