Compare software on two different domain computers

Brad Sims, CCNA
Brad Sims, CCNA used Ask the Experts™
on
All,

I found these PowerShell commands on a website to pull a software lists from two separate machines and compare the lists.  My questions are:

1.  Is it possible to automate this with PowerShell ISE?
2.  Can this be scripted so it accepts the domain credentials and both computer names as variables?
3.  Can the output be saved to a network share?  \\servername\myshareddrive, for example.

I have figured out how to run single commands in PowerShell, but I have zero experience with PowerShell ISE and scripting multiple commands.  What would the script look like if this can be accomplished?

 Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object Displ
ayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize > C:\Users\User1\Documents\InstalledPrograms
-PS.txt

 Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object Displ
ayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize > C:\Users\User2\Documents\InstalledPrograms-PS2.txt

 Compare-Object -ReferenceObject (Get-Content C:\Users\User2\Documents\InstalledPrograms-PS.txt) -DifferenceObje
ct (Get-Content C:\Users\SavedToNetworkShare\Documents\InstalledPrograms-PS2.txt)

Open in new window

Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
AlanConsultant

Commented:
Hi Brad,

I am not at a machine where I can test this right now, but I would suggest a script something like this:

ForEach ($Computer in Get-ADComputer -Filter *)
{
	Get-WMIObject -ComputerName $Computer -Class Win32_Product
}

Open in new window



Hope that helps at least move you in the right direction.


Alan.
Consultant
Commented:
Hi Brad,

I just remembered seeing a script to do this already, and I found it on TechNet:

https://gallery.technet.microsoft.com/scriptcenter/Get-Software-Function-to-bd2e0204

Appears to be exactly what you need - run it against each of the machines and compare the outputs.

I note they suggest not using the Win32_Product class, so please ignore my previous post.


Alan.
Brad Sims, CCNACyberSecurity Analyst

Author

Commented:
Got this to work at home.  Unfortunately they blocked PowerShell scripts at work so I'm fighting that battle with them now by trying to show them the time savings.  Thanks for the script though.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial