Есть ли способ определить, на каких клиентских машинах установлено программное обеспечение из GPO?

Есть ли способ определить, на каких клиентских машинах установлено программное обеспечение из GPO?

Если я назначаю программное обеспечение с помощью GPO, я предполагаю, что клиентские машины установят его при следующей перезагрузке. Однако я не могу быть уверен, не посетив каждого из клиентов и не проверив себя. Есть ли способ проверить, какие клиенты установили программное обеспечение (например, с помощью WSUS) или написать скрипт для проверки версий установленного программного обеспечения на клиентах?

решение1

В GPO нет встроенного механизма отчетности. Любое приличное программное обеспечение для управления конфигурацией может сообщать о том, что установлено, или вы можете написать для этого скрипт.


ПредупреждениеСледующий код, рекомендованный Microsoft, имеет серьезные проблемы. См. комментарий под этим ответом со ссылкой на статью "Rapid Publishing" (т.е. Emergency) Knowledge Base от 2009 года.


Если вы используете относительно новые компьютеры (Vista/2008+), вы можете использовать PowerShell: gwmi -comp computer_name Win32_Productдля получения списка установленного программного обеспечения. Он возвращает информацию вроде:

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

Это может быть дополнительно написано в скрипте для создания списка компьютеров с различными версиями установленного программного обеспечения, экспорта в CVS или другое соединение ODBC или различных задач... в зависимости от того, что вы ищете. Процесс немного запутанный, поэтому вы, вероятно, захотите рассмотреть возможность запуска этого "-AsJob" для параллельного выполнения нескольких запросов.

решение2

Вопрос слишком общий, поэтому я могу дать вам максимум указаний. Подумайте, как бы вы подтвердили установку. Например, наличие файла в %programfiles%\Company\SoftwareXYZ\abc.exe скажет ли вам, что приложение установлено успешно?

  • это ключ реестра?
  • Лог-файл с каким-то ключом успеха?
  • Журнал событий?

Как только вы это поймете, вам нужно будет написать скрипт для проверки.

Затем вам нужно сообщить о результате где-то. Например, вы можете разместить COMPUTERNAME как файл в сетевом ресурсе. Например, следующая строка в пакетном файле сделает это:

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

Наконец, вы можете добавить этот скрипт в качестве стартового скрипта в тот же объект групповой политики.

Связанный контент