3

If I assign software with a GPO, I assume that client machines will install this next time they reboot. However, I can't be certain without actually going to each of the clients and checking myself. Is there a way to check to see which clients have installed the software (like with WSUS) or a way to write a script to check versions of installed software on the clients?

bsamek
  • 329
  • 1
  • 3
  • 7

2 Answers2

5

GPO doesn't have any reporting mechanism built in. Any decent configuration management software could report what's installed, or you could script it.


Warning The following code, recommended by Microsoft, has serious issues. See the comment below this answer with a link to the "Rapid Publishing" (ie Emergency) Knowledge Base article from 2009.


If you're using reasonably new computers (Vista/2008+) you can use PowerShell: gwmi -comp computer_name Win32_Product to get a list of installed software. It returns information like:

IdentifyingNumber : {D11F66FF-82B3-DDB8-1146-525370552BE1}
Name              : Windows Software Development Kit for Windows Store Apps
Vendor            : Microsoft Corporation
Version           : 8.59.25584
Caption           : Windows Software Development Kit for Windows Store Apps

This can be further scripted to product a list of computers with various versions of specific software installed, export to CVS or other ODBC connection or a variety of tasks... depending on what you're looking for. The process is a bit pokey, so you probably want to look into running this "-AsJob" to run multiple queries in parallel.

Chris S
  • 77,945
  • 11
  • 124
  • 216
  • 2
    Win32_Product is evil (seriously). http://support.microsoft.com/kb/974524 – Adil Hindistan Dec 18 '13 at 20:30
  • Apparently so - and still unfixed in Win8.1 – Chris S Dec 18 '13 at 20:39
  • I remember the number of conference calls we had with MS just to get them accept the problem and they just stopped at publish that "FAST publish". The resolution they offer is no resolution for 99% as the class they mentioned does not exist unless you have SMS. – Adil Hindistan Dec 18 '13 at 20:41
2

The question is too generic, so I can give you pointers at most. Think about how you would confirm the installation. Would, for example, existence of a file in %programfiles%\Company\SoftwareXYZ\abc.exe tell you that app installed successfully?

  • is it a registry key?
  • A log file with some success key?
  • An event log ?

Once you figure that out, you will need to write a script to check for it.

You then need to report the result somewhere. You could for example post COMPUTERNAME as a file in a network share. For example following line in a batch file would do that:

echo. > \\MyServer\MyShare\%COMPUTERNAME%_Success.txt

Finally, you can add that script as a Startup script in the same GPO.

Adil Hindistan
  • 419
  • 4
  • 8