Compare software on two different domain computers

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

LVL 7
Brad Sims, CCNANetwork AdministratorAsked:
Who is Participating?
 
AlanConsultantCommented:
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.
0
 
AlanConsultantCommented:
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.
0
 
Brad Sims, CCNANetwork AdministratorAuthor 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.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.