Создание отчетов о применении объектов групповой политики на удаленных компьютерах и создание отчета (часть 2)

Опубликовано: 19 Марта, 2023

Введение

В первой части этой серии статей я объяснил некоторые полезные команды GPResult, которые можно использовать для применения объектов групповой политики к объектам пользователей и компьютеров с удаленных компьютеров. GPResult.exe не предоставляет параметр, который можно использовать для проверки применения определенного объекта групповой политики на удаленных компьютерах. Это также не поможет вам создать отчет. В случае, если вам нужно сгенерировать отчет, вам потребуется написать скрипт.

Обзор скрипта

Скрипт разработан с использованием языка CMD. Если вам нужно изменить сценарий в соответствии с вашими требованиями, вы можете это сделать. Сценарий использует функцию цикла FOR для обработки всех компьютеров, упомянутых в файле Computers.TXT. Внутри функции цикла FOR сценарий использует инструмент командной строки GPResult для применения объектов групповой политики к компьютерам на удаленном компьютере. Текущая версия скрипта — 1.0, как показано на снимке экрана ниже.

Изображение 4750
фигура 1

Есть три файла, доступных со сценарием; Computers.TXT, Config.CFG и сам скрипт CheckGPOStatus.CMD. Вот объяснение каждого файла:

  • Computers.TXT: файл Computers.TXT содержит список компьютеров, которые обрабатываются сценарием CheckGPOStatus.CMD. Необходимо добавить имя каждого компьютера (полное доменное имя или IP-адрес компьютера) в каждую строку.
  • Config.CFG: Config.CFG содержит конфигурацию скрипта. В этом файле указывается имя объекта групповой политики, которое будет проверяться сценарием CheckGPOStatus.CMD на удаленных компьютерах. Файл Config.CFG также включает параметр SCOPE. Например, если это объект групповой политики пользователя, который необходимо проверить на удаленных компьютерах, обязательно измените область действия с КОМПЬЮТЕР на ПОЛЬЗОВАТЕЛЬ, а если это объект групповой политики компьютера, измените значение области с ПОЛЬЗОВАТЕЛЬ на КОМПЬЮТЕР. Используя файл Config.CFG, вы также можете включить/отключить тест подключения, включить/отключить ведение журнала и т. д.
    Примечание:
    В настоящее время Config.CFG может поддерживать только значение COMPUTER для параметра Scope. В части III этой серии статей я изменю сценарий, включив в него операторы для области действия USER.
  • CheckGPOStatus.CMD: это основной сценарий, который необходимо запустить после подготовки Computers.TXT и изменения настроек в файле Config.CFG.

Вышеуказанные файлы необходимы для нормальной работы скрипта. Если какой-либо из файлов отсутствует, скрипт не запустится. Помимо вышеуказанных файлов, скрипт также создает следующие файлы:

  • GPResult_<ComputerName>.TXT: это файл, содержащий выходные данные команды GPResult.exe для каждого компьютера. Файл GPResult_ComputerName.TXT хранится в папке C:CheckGPOGPResult. Если вам нужно проверить GPResult для определенного компьютера, вы всегда можете перейти в папку C:CheckGPOGPResult и затем найти файл GPResult_ComputerName.TXT. Обратите внимание, что скрипт удалит файлы GPResult, специфичные для компьютера, при следующем запуске скрипта. Если вы не хотите, чтобы скрипт создавал файлы GPResult для каждого компьютера, вы можете отключить его, отредактировав файл Config.CFG.
  • ScriptProcessing.LOG: сценарий также создает файл журнала в папке C:CheckGPOLOG. Имя файла журнала — ScriptProcessing.log. Если в отчете не отображаются данные объекта групповой политики для определенного удаленного компьютера, вы всегда можете проверить файл ScriptProcessing.log, чтобы определить причину сбоя. Если вам нужно отключить ведение журнала, вы также можете сделать это, отредактировав файл Config.CFG.
  • GPOReport.CSV: это файл отчета, который содержит отчетные данные со всех компьютеров. Этот файл отчета находится в папке C:CheckGPOReport.

Требования

Перед запуском скрипта убедитесь, что выполнены следующие требования:

  • Центральный компьютер требуется для запуска сценария на компьютерах, указанных в файле Computers.TXT.
  • Сценарий проверяет доступность компьютера, отправляя эхо-запрос удаленному компьютеру, прежде чем он сможет обработать команду GPResult.exe. Если вы включили проверку подключения в файле Config.CFG, убедитесь, что удаленные компьютеры доступны с центрального компьютера.
  • Вы должны войти в систему на центральном компьютере, используя учетную запись пользователя, которая имеет административный доступ к удаленным компьютерам. Рекомендуется входить в систему, используя учетную запись пользователя, входящего в группу безопасности «Администратор домена».
  • Создайте папку с именем C:CheckGPO на центральном компьютере.
  • Создайте три подпапки в папке C:CheckGPO; C:CheckGPOLog, C:CheckGPOReport и C:CheckGPOGPResult.
  • Загрузите GetGPOReport.ZIP и разархивируйте все файлы в папке C:CheckGPO. Скачать скрипт можно отсюда. После распаковки файлов в папку C:CheckGPO переименуйте CheckGPOStatus.CMC в CheckGPOStatus.CMD.

Подготовка файлов

Перед выполнением сценария обязательно отредактируйте файл Computers.TXT, расположенный в папке C:CheckGPO. Все, что вам нужно сделать, это указать имена компьютеров в текстовом файле. Убедитесь, что в каждой строке указано одно имя компьютера. Computers.TXT должен выглядеть следующим образом:

Изображение 4751
фигура 2

Затем измените файл Config.CFG, как показано на снимке экрана ниже, который находится в папке C:CheckGPO:

Изображение 4752
Рисунок 3

  • GPOToCheck: здесь вам нужно указать имя объекта групповой политики, которое вы хотите, чтобы скрипт проверял на удаленных компьютерах. Как показано на снимке экрана выше, в настоящее время Config.CFG настроен на проверку « » на удаленных компьютерах.
  • Область действия: Область действия может быть ПОЛЬЗОВАТЕЛЬ или КОМПЬЮТЕР. Пожалуйста, не забудьте указать область заглавными буквами. Обратите внимание, что текущая версия сценария может работать только в том случае, если для области действия установлено значение КОМПЬЮТЕР. Если вы установите Scope на USER, сценарий завершится.
  • PING: по умолчанию сценарий проверяет подключение удаленных компьютеров перед обработкой следующих операторов. В некоторых средах проверка связи может быть не включена. Если это так, измените файл Config.CFG и установите для параметра Ping значение NO.
  • Ведение журнала: по умолчанию сценарий создает файл журнала с именем ScriptProcessing.log. Рекомендуется оставить ведение журнала включенным для устранения неполадок.
  • GPResultFiles: по умолчанию сценарий создает текстовый файл для каждого компьютера, который содержит данные GPResult, собранные с каждого компьютера. Если вам нужно отключить создание файла GPResult_ComputerName.TXT, все, что вам нужно сделать, это установить значение GPResultFiles в NO в файле Config.CFG.

Запуск скрипта

Выполните шаги, описанные ниже, чтобы запустить скрипт:

  1. На центральном компьютере перейдите в командную строку, а затем перейдите в папку C:CheckGPO.
  2. Убедитесь, что вложенные папки C:CheckGPOReport, C:CheckGPOGPResult и C:CheckGPOLOG существуют.
  3. В командной строке выполните сценарий CheckGPOStatus.CMD. После выполнения CheckGPOStatus.CMD обработает все компьютеры из Computers.TXT один за другим, как показано на снимке экрана ниже:

Изображение 4753
Рисунок 4

  1. После завершения выполнения скрипта для всех компьютеров, упомянутых в файле Computers.TXT, появится сообщение о том, что отчет готов, как показано на снимке экрана ниже:

Изображение 4754
Рисунок 5

Примечание:
В любой момент во время обработки скрипта вы можете нажать CTRL+C, чтобы завершить скрипт.

Открытие файла отчета

Скрипт создает отчет в файле CSV, который находится в папке C:CheckGPOReport. Файл отчета GPOReport.CSV можно открыть в Microsoft Excel. По сути, файл отчета включает статус приложения GPO для каждого вычисления в одной строке. Как вы можете видеть на снимке экрана ниже, скрипт обработал в общей сложности пять компьютеров из Computers.TXT, и один компьютер сообщает, что объект групповой политики «Объект групповой политики заставки» еще не был применен. Другой компьютер (Computer4) сообщает, что при выполнении команды GPResult.exe возникли проблемы.

Изображение 4755
Рисунок 6

Исправление проблем

Сценарий может не запуститься на компьютере. Вы можете не увидеть состояние приложения GPO в файле отчета для определенного компьютера. В этом случае откройте файл C:CheckGPOLOGScriptProcessing.LOG, чтобы узнать причину сбоя. Как вы можете видеть на снимке экрана ниже, для компьютера 3 сообщается об ошибке «Компьютер недоступен». Точно так же, если команда GPResult не выполняется успешно для компьютера, то же самое будет выделено в файле ScriptProcessing.log.

Изображение 4756
Рисунок 7

Вывод

Вы видели, как легко проверить применение объекта групповой политики компьютера с помощью сценария, предоставленного в этой статье. В настоящее время сценарий может проверять только применение объекта групповой политики для объекта-компьютера. В части III этой серии статей я обновлю сценарий для проверки пользовательских объектов групповой политики на удаленных компьютерах. Если у вас возникнут какие-либо проблемы при запуске скрипта или вы не увидите желаемых результатов, напишите мне по электронной почте nirmal_sharma @ mvps.org или nirmal_ks @ outlook.com.