I need to query a list of computer names on the domain and get a list of installed software. Is there a piece of software that will do this for free?

@Microsoft

8 Spice ups

Spiceworks

wmic /node:computer product get name (only products installed with msi)

psexec with reg:

reg query “HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall” /s | find “DisplayName”

reg query “HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall” /s | find “DisplayName”

http://community.spiceworks.com/help/Tracking_Software_License_Compliance#Scan

5 Spice ups

I’m haven’t tried this yet, but I will soon; give it a try: PDQ Inventory | PDQ

2 Spice ups

Cool. What is the easiest way to get the Remote Registry service set to Automatic on all computers so that the Windows 7 boxes will respond to these queries? From what I understand, Windows 7 has it set to Manual by default.

You can query a computer remotely using WMIC and get a list of installed software,

wmic product get /format:csv > Software_%Computername%.csv

http://www.sepago.de/e/helge/2010/01/14/how-to-list-all-installed-applications-from-the-command-line

http://community.spiceworks.com/how_to/show/179-using-a-command-line-to-uninstall-software-on-remote-pcs

1 Spice up

Try

sc \computername config remoteregistry start=auto

Or

Group Policy: Computer\Policy\Windows Settings\System Services

2 Spice ups

According to The Scripting Guy , this is apparently the only reliable method:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall.

1 Spice up

Okay, now to just figure out how to write a script that does this for all computers in the domain:

sc \computername start remoteregistry
sc \computername config remoteregistry start= auto

1 Spice up

Looks like a GPO for this is gonna be the best way. Then run a script/application on all computers. Then maybe disable Remote Registry when I am done with this project…

If you only want it this one time, use psexec.(pstools suite from sysinternals)

psexec -s \* net start remoteregistry

Next time the computer reboots, it will be off again.

1 Spice up

That’s why I put that notation beside the wmic method. The wmic method is good if you are checking for something you know was installed with an MSI. Maybe, you deployed something with a GPO and needed to check that it actually installed.

try this:

http://community.spiceworks.com/reports/1097

@cduff: I just tried PDQ Inventory (free) and it is AWESOME! Thanks so much!

Is there a particular reason that Spiceworks didn’t work for you?

1 Spice up

I suggest using Action1 - you can query a lot of information from your endpoints in real time, including installed software: The Best Risk-based Patch Management | Action1 - it is free for up to 100 endpoints.

Or you can use Powershell script to get installed software for all domain computers in real-time: Script to List Installed Software on Multiple Computers