Как посмотреть какие политики применяются к компьютеру в домене windows

Утилита командной строки GPResult.exe используется для получения результирующего набора групповых политик (Resultant Set of Policy, RSOP), которые применяются к пользователю и/или компьютеру в домене Active Directory. Gpresult позволяет вывести список доменных политик (GPO), которые применяются на компьютер и пользователя, настройки политик и ошибки обработки. Это наиболее часто используемый инструмент администратора для анализа настроек и диагностики групповых политик в Windows.

В этой статье мы рассмотрим, как использовать команду GPResult для диагностики и анализа настроек групповых политик, применяющихся к Windows в домене Active Directory.

Содержание:

  • Использование команды GPResult в Windows
  • GPResult: экспорт данных RSOP в HTML отчет
  • Получение отчета по политикам GPResult с удаленного компьютера
  • Пользователь не имеет данных RSOP
  • Следующие политики GPO не были применены, так как они отфильтрованы
  • Оснастка результирующих политик RSoP в Windows

Использование команды GPResult в Windows

Команда GPResult выполняется на компьютере, на котором нужно проверить применение групповых политик. Синтаксис GPResult:

GPRESULT [/S <система> [/U <пользователь> [/P <пароль>]]] [/SCOPE <область>] [/USER <имя_конечного_пользователя>] [/R | /V | /Z] [(/X | /H) <имя_файла> [/F]]

Чтобы получить подробную информацию о групповых политиках, которые применяются к данном объекту AD (пользователю и компьютеру), и других параметрах, относящихся к инфраструктуре GPO (т.е. результирующие настройки политик GPO – RsoP), выполните команду:

Gpresult /r

Результаты выполнения команды разделены на 2 секции:

  • COMPUTER SETTINGS (Конфигурация компьютера) – раздел содержит информацию об объектах GPO, действующих на компьютер в Active Directory;
  • USER SETTINGS – раздел с политиками пользователя (политики, действующие на учетную запись пользователя в AD).

Вкратце пробежимся по основным параметрам/разделам, которые нас могут заинтересовать в выводе GPResult:

  • Site Name (Имя сайта:)– имя сайта AD, в котором находится компьютер;
  • CN – полное каноническое пользователя/ компьютера, для которого были сгенерированы данные RSoP;
  • Last time Group Policy was applied (Последнее применение групповой политики)– время, когда последний раз применялись (обновились) настройки GPO;
  • Group Policy was applied from (Групповая политика была применена с)– контроллер домена, с которого была загружена последняя версия GPO;
  • Domain Name и Domain Type (Имя домена, тип домена)– имя и версия схемы домена Active Directory;
  • Applied Group Policy Objects (Примененные объекты групповой политики) – списки действующих объектов групповых политик;
  • The following GPOs were not applied because they were filtered out (Следующие политики GPO не были применены, так как они отфильтрованы)— не примененные (отфильтрованные) GPO;
  • The user/computer is a part of the following security groups (Пользователь/компьютер является членом следующих групп безопасности) – список доменных групп безопасности, в которых состоит пользователь/пользователь.

gpresult -r - диагностика групповых политик Active Directory

В нашем примере видно, что на объект пользователя действуют 4 групповые доменные политики.

  • Default Domain Policy;
  • Enable Windows Firewall;
  • DNS Suffix Search List;
  • Disable Cached Credentials.

Также в отчете будет информацию о локальных параметрах политик, настроенных через локальный редактор GPO (gpedit.msc).

С помощью опции /scope можно вывести только политики пользователя или компьютера:

gpresult /r /scope:user

или только примененные политики компьютера:

gpresult /r /scope:computer

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

gpresult /r /scope:computer

ERROR: Access Denied.

gpresult ошибка отказано в доступе

Для удобства анализа данных RSOP, вы можете перенаправить результаты Gpresult в буфер обмена:

Gpresult /r |clip

или текстовый файл:

Gpresult /r > c:\gpresult.txt

Чтобы вывести сверхподробную информацию RSOP, нужно добавить ключ /z.

Gpresult /r /z

Например, на скриншоте показаны настройки политики паролей в домене, которые применяются к компьютеру.

подробный отчет gpresult с настройка GPO которые применились к компьютеру

GPResult: экспорт данных RSOP в HTML отчет

Утилита GPResult позволяет сгенерировать HTML-отчет по примененным результирующим политикам (доступно в Windows 7 и выше). Такой отчет содержит подробную информацию обо всех параметрах Windows, которые задаются групповыми политиками и именами GPO, которые внесли изменения. Этот отчет по структуре напоминает вкладку Settings в консоли управления доменными групповыми политиками (
gpmc.msc
). Сгенерировать HTML отчет GPResult можно с помощью команды:

GPResult /h c:\gp-report\report.html /f

Если не указывать полный путь к HTML файлу, то HTML отчет gpresult будет сохранен в каталог
%WINDIR%\system32
.

GPResult html отчет с примененными политиками

Чтобы сгенерировать отчет и автоматически открыть его в браузере, выполните команду:

GPResult /h GPResult.html & GPResult.html

В HTML отчете gpresult содержится довольно много полезной информации: видны ошибки применения GPO, время применения конкретных политик (в мс.) и CSE (в разделе Computer Details -> Component Status). Это удобно, когда нужно понять почему групповые политики (GPP/GPO) применяются на компьютере слишком долго.

Например, на скриншоте выше видно, что политика Enforce password history с настройками 24 passwords remember применена политикой Default Domain Policy (столбец Winning GPO).

HTML отчет позволяет представить результирующий набор GPO компьютера в удобном графическом виде.

Получение отчета по политикам GPResult с удаленного компьютера

GPResult может получить информацию о результирующих политик с удаленного компьютера.

GPResult /s wks22123 /r /user a.ivanov

В команде gpresult можно указать имя и пароль для подключения к удаленному компьютеру:

gpresult /R /S wks22123 /scope user /U winitpro\kbuldogov /P P@$$worrd

gpresult получить данные rsop с удаленного компьютера

Если вы не хотите, чтобы ваш пароль сохранялся в истории команд PowerShell, можно запросить пароль интерактивно:
gpresult /R /S wks22123 /scope user /U winitpro\kbuldogov /P

Аналогичным образом вы можете удаленно собрать данные как по пользовательским политикам, так и по политиками компьютера.

Если вы не знаете имя пользователя, под которым выполнен вход, можно узнать учетную запись на удаленном компьютере так:

qwinsta /SERVER:remotePC1

HTML отчет RSOP, аналогичный тому, который формирует команда gpresult можно создать с помощью PowerShell. Для получения результирующих политик с удаленного компьютера используется командлет Get-GPResultantSetOfPolicy из модуля GroupPolicy.

Get-GPResultantSetOfPolicy -user kbuldogov -computer corp\pc0200 -reporttype html -path c:\ps\gp_rsop_report.html

Пользователь не имеет данных RSOP

Если на компьютере включен UAC, то GPResult без повышенных привилегий выведет только параметры пользовательского раздела групповых политик. Если нужно одновременно отобразить оба раздела (USER SETTINGS и COMPUTER SETTINGS), открыть командную строку с правами администратора. Е

сли командная строка с повышенными привилегиями запущена от имени учетной записи отличной от текущего пользователя системы, утилита выдаст предупреждение INFO: The user “domain\user” does not have RSOP data (Пользователь «domain\user» не имеет данных RSOP). Это происходит потому, что GPResult пытается собрать информацию для пользователя, ее запустившего, но т.к. данный пользователь не выполнил вход (logon) в систему, информация RSOP для него отсутствует. Чтобы собрать информацию RSOP по пользователю с активной сессией, нужно указать его учетную запись:

gpresult /r /user:tn\edward

gpresult - групповые политики пользователя

Если вы не знаете имя учтённой записи, которая залогинена на удаленном компьютере, учетную запись можно получить так:

qwinsta /SERVER:remotePC1

Также проверьте время (и часовой пояс) на клиенте. Время должно соответствовать времени на PDC (Primary Domain Controller).

Следующие политики GPO не были применены, так как они отфильтрованы

При отладке и траблшутинге применения групповых политик стоит также обращать внимание на секцию: The following GPOs were not applied because they were filtered out (Следующие политики GPO не были применены, так как они отфильтрованы). В этой секции отображается список GPO, которые по той или иной причине не применяются к этому объекту. Возможные варианты, по которым политика может не применяться:

  • Filtering: Not Applied (Empty) (Фильтрация: Не применено (пусто)) – политика пустая (применять, нечего);
  • Filtering: Denied (Unknown Reason) (Фильтрация: Не применено (причина неизвестна)) – скорее всего у пользователя или компьютера отсутствуют разрешения на чтение/применение этой политики. Разрешения настраиваются на вкладке Security в консоли управления доменными GPO — GPMC (Group Policy Management Console);
  • Filtering: Denied (Security) (Фильтрация: Отказано (безопасность)) — в секции Apply Group Policy указан явный запрет в разрешении Apply group policy либо объект AD не входит в список групп в разделе настроек Security Filtering.

Фильтрация групповых политик

Также вы можете понять должна ли применяться GPO к organizational unit (OU) в AD на вкладке эффективных разрешений (Advanced -> Effective Access).

Оснастка результирующих политик RSoP в Windows

Изначально для диагностики применения групповых политик в Windows использовалась графическая консоль
RSOP.msc
. Эта оснастка позволяет получить настройки результирующих политик (доменных + локальных), примененных к компьютеру и пользователю в графическом виде аналогичном консоли редактора GPO. На скриншоте показа вид консоли RSOP.msc в которой видно, что настройки Windows Update на компьютере заданы доменной политикой WSUS_SERVERS.

консоль результирующей групповой политики - RSOP.msc

В современных версиях Windows RSOP.msc не получится использовать для полноценного анализа примененных GPO. Она не отражает настройки, примененные через расширения групповых политик CSE (Сlient Side Extensions), таких как GPP (Group Policy Preferences), не позволяет выполнять поиск, предоставляет мало диагностической информации. В Windows 10 и 11 при запуске
rsop.msc
появилось предупреждение, что основной инструмент для диагностики применения GPO это утилита gpresult.

Starting with Vista, the Resultant Set of Policies (RSoP) report does not show all Microsoft Group Policy settings. To see the full set of Microsoft Group Policy settings applied for a computer or user, use the command-line tool gpresult.

rsop.msc в Windows не показывает все примененные политики
В этой статье мы рассмотрели, как использовать утилиту GPResult для анализа результирующих групповых политик, которые применяются в Windows. Также для анализа применения GPO в домене рекомендуем использовать инструкции из статьи “Почему групповая политика не применяется к компьютеру или OU”.

GPResult.exe — это консольный административный инструмент, предназначенный для анализа и диагностики параметров групповой политики, которые применяются к компьютеру и/или пользователю в домене Active Directory. В частности, GPResult позволяет получить данные RSOP (Resultant Set of Policy), список применённых политик домена (GPO), их настройки и подробную информацию об ошибках при обработке GPO. Этот инструмент является частью ОС Windows, начиная с Windows XP. Инструмент GPResult позволяет ответить на такие вопросы: применяется ли конкретная политика к компьютеру, какой объект групповой политики изменил конкретную настройку Windows и как устранить проблемы с медленной обработкой GPO/GPP?

В этой статье мы рассмотрим нюансы использования команды GPResult для диагностики производительности и отладки групповых политик в домене Active Directory.

В более ранних версиях Windows для диагностики применения групповых политик на стороне клиента использовалась графическая консоль RSOP.msc, что позволяло получать результирующие параметры политики (домен + локальный), которые применяются к компьютеру и пользователю в графической форме, аналогичной консоли редактора GPO.

Однако консоль RSOP.msc непрактична для использования в современных версиях Windows, поскольку она не отображает настройки, применяемые различными расширениями групповой политики (client-side extensions, CSE), такими как GPP (Group Policy Preferences, предпочтения групповой политики), не позволяет искать среди настроек, не обеспечивает достаточно диагностической информации (в Windows 10 даже появляется предупреждение о том, что RSOP не даёт полного отчёта, в отличие от GPResult). Таким образом, команда GPResult сегодня является основным инструментом для выполнения диагностики GPO в Windows.

Как использоваться инструментом Group Policy Results (GPResult.exe)?

Команду GPResult необходимо запустить на компьютере, на котором вы хотите проверить применение групповых политик. Команда GPResult имеет следующий синтаксис:

GPRESULT [/S <система> [/U <пользователь> [/P <пароль>]]] [/SCOPE <область>]
           [/USER <имя_конечного_пользователя>]
           [/R | /V | /Z] [(/X | /H) <имя_файла> [/F]]

Чтобы получить подробную информацию о групповых политиках, применённых к пользователю или компьютеру, а также о других параметрах, относящихся к инфраструктуре GPO (итоговые параметры политики GPO — RsoP), выполните следующую команду:

Gpresult / r

Результаты этой команды разделены на два раздела:

  • Конфигурация компьютера — раздел содержит информацию об объектах GP, применённых к компьютеру (как объект Active Directory);
  • Конфигурация пользователя — это раздел политики пользователя (политики, применённые к учётной записи пользователя AD).

Давайте кратко рассмотрим основные настройки/разделы в выходных данных GPResult, которые могут нас заинтересовать:

  • Имя сайта — это имя сайта AD, на котором расположен компьютер;
  • CN — полное каноническое имя пользователя/компьютера, для которого были сгенерированы данные RSoP;
  • Последнее применение групповой политики — время последнего применения групповых политик;
  • Групповая политика была применена с — это имя контроллера домена, с которого была загружена последняя версия GPO;
  • Имя домена и Тип домена — это имя и номер версии схемы домена Active Directory;
  • Примененные объекты групповой политики — это списки применённых объектов групповой политики;
  • Следующие политики GPO не были применены, так как они отфильтрованы — это объекты групповой политики, которые не применялись или были отфильтрованы;
  • Пользователь является членом следующих групп безопасности — это группы домена, членом которых является пользователь.

В этом примере вы можете видеть, что к объекту пользователя применены 4 групповые политики.

  • Disable Cached Credentials (Отключить кешированные учётные данные);
  • DNS Suffix Search List (Список поиска DNS-суффиксов);
  • Enable Windows Firewall (Включить брандмауэр Windows);
  • Default Domain Policy (Политика домена по умолчанию).

Если вы не хотите одновременно отображать информацию о политиках пользователя и компьютера, вы можете использовать параметр /scope, чтобы отображать только нужный раздел. Только результирующая политика пользователя:

gpresult /r /scope:user

или только применяемые компьютерные политики:

gpresult /r /scope:computer

Поскольку инструмент Gpresult отображает свои данные непосредственно в командной строке, что не всегда удобно для дальнейшего анализа, вывод можно перенаправить в буфер обмена:

Gpresult /r | clip

или текстовый файл:

Gpresult /r > c:\ps\gpresult.txt

Чтобы отобразить сверхдетальную информацию RSOP, вам нужно добавить ключ /z:

Gpresult /r /z

Отчёт RSoP HTML с использованием GPResult

GPResult также может генерировать HTML-отчёт о применённых результирующих политиках (доступно в Windows 7 и выше). Этот отчёт содержит подробную информацию обо всех системных настройках, которые задаются групповыми политиками, и названиями определённых объектов групповой политики, которые их установили (по своей структуре этот отчёт напоминает вкладку Настройки в Консоли управления групповыми политиками — gpmc.msc) . Вы можете сгенерировать HTML-отчет GPResult, используя команду:

GPResult /h c:\PS\gpo-report.html /f

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

GPResult /h GPResult.html & GPResult.html

HTML-отчет gpresult содержит довольно много полезной информации: вы можете увидеть ошибки, возникшие во время применения объектов групповой политики, время обработки (в мс) для определённых политик и CSE (в разделе Computer Details → Component Status section («Сведения о компьютере» → «Состояние компонента»)). Как видите, этот HTML-отчёт gpresult намного удобнее для анализа применяемых политик, чем rsop.msc.

Как запустить GPResult на удалённом компьютере?

GPResult также может собирать данные с удалённого компьютера без необходимости локального входа в удалённую систему или через RDP. Команда для сбора RSOP с удалённого компьютера выглядит так:

GPResult /s ИМЯ-УДАЛЁННОГО-КОМПЬЮТЕРА1 /r

Точно так же вы можете удалённо собирать данные как о пользовательских, так и о компьютерных политиках.

У пользователя нет данных RSoP

Когда UAC включён и GPResult используется в режиме без повышенных прав, отображается только раздел пользовательских настроек групповых политик. Если вам нужно, чтобы отображались оба раздела (Конфигурация пользователя и Конфигурация компьютера), команда должна быть запущена в командной строке с правами администратора. Если командная строка с повышенными привилегиями запускается от имени учётной записи, отличной от текущего пользователя, инструмент покажет предупреждение: INFO: The user “domain\user” does not have RSOP data (ИНФОРМАЦИЯ: пользователь «домен\пользователь» не имеет данных RSOP). Это происходит из-за того, что GPResult пытается собрать данные пользователя, запустившего его, но поскольку этот пользователь не вошёл в систему, для него нет информации RSOP. Чтобы получить информацию RSOP от пользователя с активным сеансом, вам необходимо указать его учётную запись:

gpresult /r /user:ДОМЕН\ПОЛЬЗОВАТЕЛЬ

Если вы не знаете имя учётной записи, для которой выполнен вход на удалённый компьютер, вы можете получить такое имя пользователя:

qwinsta /SERVER:ИМЯ-УДАЛЁННОГО-КОМПЬЮТЕРА1

Также проверьте время (и часовой пояс) на клиенте. Время должно совпадать со временем на контроллере домена.

Следующие политики GPO не были применены, так как они отфильтрованы

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

Он содержит список объектов групповой политики, которые по какой-либо причине не применяются к этому объекту. Вот несколько причин, по которым политики не применяются:

  • Filtering: Not Applied (Empty), в русифицированной версии «Фильтрация: Не применяется (пусто)» – политика пуста (применять нечего);
  • Filtering: Denied (Unknown Reason), в русифицированной версии «Фильтрация: отклонено (неизвестная причина)» – пользователь/компьютер, скорее всего, не имеет разрешения на чтение/применение этой политики (разрешения можно настроить на вкладке «Безопасность» в Консоли управления групповой политикой
    Вы также можете понять, следует ли применять политику к конкретному объекту AD, используя вкладку действующих разрешений (Advanced → Effective Access) в GPMC (консоли управления групповыми политиками).
  • Filtering: Denied (Security), в русифицированной версии «Фильтрация: Запрещено (Безопасность)» – явный отказ указывается в разделе Apply Group Policy («Применить групповую политику»), или объект AD отсутствует в списке групп в разделе «Фильтрация безопасности» объекта групповой политики.

Итак, в данной статье мы рассмотрели особенности диагностики применения групповых политик с помощью инструмента GPResult и рассмотрели основные сценарии его использования.

Все опции: GPResult

GPResult отображает результирующую политику (RSoP) для указанного пользователя и компьютера.

Использование:

GPRESULT [/S <система> [/U <пользователь> [/P <пароль>]]] [/SCOPE <область>]
           [/USER <имя_конечного_пользователя>]
           [/R | /V | /Z] [(/X | /H) <имя_файла> [/F]]

Список параметров:

  /S     <система>                Подключаемый удаленный компьютер.

  /U     [<домен>\]<пользователь> Указание пользовательского контекста,
                                  в котором должна выполняться эта команда.
                                  Нельзя использовать с /X и /H.

  /P     [<пароль>]               Пароль для этого пользовательского контекста.
                                  Запрос данных, если они не указаны.
                                  Невозможно использовать с /X и /H.

  /SCOPE <область>                Определение области отображения данных:
                                  параметры пользователя или компьютера.
                                  Допустимые значения: "USER", "COMPUTER".

  /USER  [<домен>\]<пользователь> Пользовательский контекст, для которого
                                  следует отображать данные RSoP.

  /X     <имя_файла>              Сохранение отчета в XML-формате в
                                  расположении и с именем файла, заданным
                                  параметром <имя_файла>. (Допустимо в Windows
                                  Vista с пакетом обновления 1 (SP1) и выше,
                                  а также в Windows Server 2008 и выше)

  /H     <имя_файла>              Сохранение отчета в HTML-формате в
                                  расположении и с именем файла, заданным
                                  параметром <имя_файла>. (Допустимо в Windows
                                  Vista с пакетом обновления 1 (SP1) и выше,
                                  а также в Windows Server 2008 и выше)

  /F                              Указывает программе Gpresult перезаписать
                                  файл с именем, указанным в команде /X или /H.

  /R                              Отображение сводных данных RSoP.

  /V                              Отображение подробной информации.
                                  Подробная информация содержит сведения
                                  о параметрах, примененных
                                  с приоритетом 1.

  /Z                              Отображение сверхподробной информации.
                                  Сверхподробная информация содержит
                                  сведения о параметрах, примененных
                                  с приоритетом 1 и выше.
                                  Это позволяет увидеть, не был ли параметр
                                  задан одновременно в нескольких местах.
                                  Более подробная информация приведена
                                  в справке по групповой политике.

  /?                              Вывод справки по использованию.

Примеры запуска GPRESULT:

GPRESULT /R
GPRESULT /H GPReport.html
GPRESULT /USER targetusername /V
GPRESULT /S system /USER targetusername /SCOPE COMPUTER /Z
GPRESULT /S system /U username /P password /SCOPE USER /V

Связанные статьи:

  • Устранение неполадок: групповая политика (GPO) не применяется (100%)
  • Устранение неполадок, связанных с медленной обработкой GPO и снижением скорости входа в систему (100%)
  • Актуализация настроек групповой политики на компьютерах домена Windows (90.3%)
  • Настройка политики паролей домена в Active Directory (66.2%)
  • Fine-Grained Password Policy: Как создать детальную политику паролей в Active Directory (66.2%)
  • Как запустить PowerShell с правами администратора (RANDOM — 9.7%)

Не могу понять, как посмотреть, какие политики применяются на рабочую станцию, удаленно. 

Пишу: gpresult /S computername /SCOPE COMPUTER /R

А он мне: Пользователь «DomainName\Администратор» не имеет данных RSOP.

gpresult /S computername /SCOPE COMPUTER /Z — То же самое.

Пишу: gpresult /S computername /USER DomainName\UserName /SCOPE COMPUTER /Z

А он мне: Пользователь «DomainName\UserName» не имеет данных RSOP.

При чём, пользователь UserName сейчас работает за тем компьютером!

Иду другим путём: подключаюсь через psexec, ввожу

gpresult /SCOPE COMPUTER /R
А он мне снова: Пользователь «ALKIV\Администратор» не имеет данных RSOP.

И чёрт его знает, как посмотреть эти политики. Может есть другой путь?

Подчёркиваю: нужно посмотреть именно перечень применяемых объектов политики, а не результирующую политику. Так что rsop.msc не подходит.

Время на прочтение
6 мин

Количество просмотров 33K

Тема использования PowerShell для администрирования крайне актуальна, и на Хабре появляется все больше и больше статей на эту тему. Предыдущий перевод статьи Джеффри Хикса, который мы опубликовали в прошлую пятницу, вызвал волну интереса. И как тут не вспомнить замечательное выступление того же автора на TechEd North America 2012. Доклад, который Джеффри Хикс проводил вместе с Джереми Московицем (Jeremy Moskowitz), был посвящен анализу объектов групповых политик и формированию отчетов. Оригинальный материал (видео) здесь, мы же приводим крактко содержание + скрипты. В любом случае рекомендуем посмотреть само видео.

В фокусе доклада было два вопроса:

  1. Строит отчеты по групповым политикам
  2. Проводим анализ групповых политик

Подробности – под катом.

Используем PowerShell в связке с групповыми политиками: что для этого нужно?

Чтобы использовать PowerShell при работе с групповыми политиками, нам необходимы:

  • Windows 7 (для запуска PowerShell)
  • RSAT для Windows 7
  • Собственно сам PowerShell v2.0 или выше
  • Опционально: рекомендуется Microsoft Active Directory Provider

Последовательность наших действий:

  • Импортируем модуль групповых политик (Import-module GroupPolicy)
  • Получаем объект групповых политик с помощью PowerShell (Get a GPO PowerShell Object)
  • Строим отчет на основе этого объекта
  • Строим HTML/XML-отчеты по объектам групповых политик
  • Парсим и осуществляем поиск в XML для целей анализа
  • Осуществляем поиск с помощью Select-XML и Xpath

Строим отчеты по групповым политикам

Проблема №1. Необходимо получить информацию о том, что в настоящий момент происходит в групповых политиках

PS C:\> Import-Module GroupPolicy
PS C:\> Get-GPO JeremyGPO

В данном случае вместо JeremyGPO выступает отображаемое имя (DisplayName) объекта групповых политик. Выводится такая табличка

DisplayName      : JeremyGPO
DomainName       : GLOBOMANTICS.local
Owner            : GLOBOMANTICS\Domain Admins
Id               : cd73c562-5bfe-40e2-b81e-28da10da425c
GpoStatus        : ComputerSettingsDisabled
Description      :
CreationTime     : 12/28/2011 2:52:37 PM
ModificationTime : 5/21/2012 11:08:26 AM
UserVersion      : AD Version: 4, SysVol Version: 4
ComputerVersion  : AD Version: 1, SysVol Version: 1
WmiFilter        :

Решение проблемы: создаем отчеты.

Например, перед нами стоит задача получить список всех объектов групповых, которые были изменены за последние 30 дней, отсортированные по убыванию (последние наверху) с тремя значениями (отображаемое имя, время изменения, описание). Полученную информацию необходимо экспортировать в .csv файл (GPOModReport.csv в данном примере). Как это выглядит в PowerShell:

PS C:\> get-gpo -all | Where {$_.ModificationTime -gt (Get-Date).AddDays(-30)}

... | Sort ModificationTime -Descending | Where {$_.ModificationTime -ge (Get-Date).AddDays(-30)} | Select Displayname,ModificationTime,Description

... | Export-CSV R:\GPOModReport.csv

Примеры дополнительных команд

#Созданные и измененные объекты групповых политик
PS C:\>get-gpo -all | Sort CreationTime,Modificationtime | Select Displayname,*Time
#Находим все объекты групповых политик, измененные за последние 30 дней 
PS C:\>get-gpo -all | Where {$_.ModificationTime -ge (Get-Date).AddDays(-30)}
#Создаем отчет по отдельному объекту групповых политик (Defaul Domain Policy)
PS C:\>Get-GPOReport -name "Default Domain Policy" -ReportType HTML -Path "c:\work\ddp.htm"
invoke-item "c:\work\ddp.htm"
#Создаем отчеты по всем объектам групповых политик
PS C:\>Get-GPOReport -All -ReportType HTML -Path "c:\work\allgpo.htm"
invoke-item "c:\work\allgpo.htm"
#Создаем для каждого объекта групповых политик свой отчет
#заменяем пробелы на _ в имени GPO
PS C:\>Get-GPO -all | foreach { 
 $f="{0}.htm" -f ($_.Displayname).Replace(" ","_")
 $htmfile=Join-Path -Path "C:\work" -ChildPath $f
 Get-GPOReport -Name $_.Displayname -ReportType HTML -Path $htmfile
 Get-Item $htmfile 
}

Проблема №2. Слишком много GPO, которые не используются.

Задача: найти пустые GPOs

  • Определить объекты групповых политик без настроек
  • Ищем XML ExtensionData
PS C:\> Import-Module GroupPolicy
PS C:\> [xml]$r = Get-GPOReport -Name MyGPO 
-ReportType XML
PS C:\> if ((-Not $r.gpo.user.extensiondata) -AND (-not $r.gpo.computer.extensiondata)) {
 "GPO is empty"
 }

Дополнительные команды

#requires -version 2.0

#find empty gpos in the domain

Function Get-EmptyGPO {

Param (
[Parameter(Position=0,ValueFromPipeline=$True,
ValueFromPipelinebyPropertyName=$True)]
[string]$DisplayName
)

Begin {
#import the GroupPolicy Module
Import-Module GroupPolicy

}

Process {
#create an XML report
[xml]$report=Get-GPOReport -Name $displayname -ReportType XML

 #totally empty
 if ((-Not $report.gpo.user.extensiondata) -AND (-not $report.gpo.computer.extensiondata)) {
    #no extension data so write
    Get-GPO -Name $Displayname
}

} #process

End {}

} #function

Function Test-EmptyGPO {

Param (
[Parameter(Position=0,ValueFromPipeline=$True,
ValueFromPipelinebyPropertyName=$True)]
[string]$DisplayName
)

Begin {
#import the GroupPolicy Module
Import-Module GroupPolicy

}

Process {

    #set default values
    $User=$False
    $Computer=$False
    #create an XML report
    [xml]$report=Get-GPOReport -Name $displayname -ReportType XML

    if ($report.gpo.user.extensiondata) {
     $User=$True
    }
    If ( $report.gpo.computer.extensiondata) {
     $Computer=$True
    }
    #write a custom object to the pipeline
    New-Object -TypeName PSObject -Property @{
    Displayname=$report.gpo.name
    UserData=$User
    ComputerData=$Computer
    }

} #Process

End {}

} #function

#Get-GPO -All | Get-EmptyGPO
#Get-GPO -All | Test-EmptyGPO

Проблема №3.
Кто обращался к объекту групповой политики?
Имеются ли GPO, в которых половина политики деактивирована (“Are there any GPOs with ‘half’ the policy disabled?”)
Имеются ли GPO, в которых все политики деактивированы (“Are there any GPOs with ‘all’ the policy disabled?”)

Применяем фильтр по статусу GPO (GPOStatus). Каждому из трех вопросов выше соответствуют три команды:

PS C:\> get-gpo -all | Sort GPOStatus | format-table -GroupBy GPOStatus Displayname,*Time
PS C:\> get-gpo -all | where {$_.GPOStatus -match "disabled"} | Select GPOStatus,Displayname
PS C:\> get-gpo -all | where {$_.GPOStatus -match "AllSettingsDisabled"}

Анализируем объекты групповых политик

Проблема №4. Обнаруживаем GPO без связей

PS C:\> Import-Module ActiveDirectory
Get-ADOrganizationalUnit -filter * | select-object
-ExpandProperty DistinguishedName | get-adobject 
-prop gplink | where {$_.gplink} | Select-object 
-expand gplink | foreach-object { 
foreach ($item in ($_.Split("]["))) {
$links+=$regex.match($item).Value
   } 
} 
Get-GPO -All | Where {$links -notcontains $_.id}

Дополнительные команды

#requires -version 2.0

<#
 Find unlinked GPOs. This requires the Active Directory Module
 This version does not query for site links
 #>

Import-Module ActiveDirectory,GroupPolicy

#GUID regular expression pattern
[Regex]$RegEx = "(([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12})"

#create an array of distinguishednames
$dn=@()
$dn+=Get-ADDomain | select -ExpandProperty DistinguishedName
$dn+=Get-ADOrganizationalUnit -filter * | select -ExpandProperty DistinguishedName

$links=@()

#get domain and OU links
    
foreach ($container in $dn) {

    #pull the GUID and add it to the array of links

    get-adobject -identity $container -prop gplink | 
    where {$_.gplink} | Select -expand gplink | foreach {
      
      #there might be multiple GPO links so split 
            
      foreach ($item in ($_.Split("]["))) {
        $links+=$regex.match($item).Value
      } #foreach item
    } #foreach
} #foreach container

#$links

<#
 get all gpos where the ID doesn't belong to the array
 write the GPO to the pipeline
#>

Get-GPO -All | Where {$links -notcontains $_.id} 

Проблема 5. Объекты групповых политик с излишними настройками в реестре (“Extra Registry Settings”)

Находим излишние настройки в реестре

#Use Xpath with the XML report data
PS C:\> [xml]$report = Get-GPOReport -Name MyGPO 
-ReportType XML
PS C:\> $ns = @{q3 = "http://www.microsoft.com/GroupPolicy/Settings/Registry"}
PS C:\> $nodes = Select-Xml -Xml $report -Namespace $ns -XPath "//q3:RegistrySetting" | select -expand Node | Where {$_.AdmSetting -eq 'false'}

Дополнительные команды

#requires -version 2.0

#find GPOs with extra registry, ie non-ADM settings

Function Test-GPOExtraRegistry {

Param (
[Parameter(Position=0,ValueFromPipeline=$True,
ValueFromPipelinebyPropertyName=$True)]
[string]$DisplayName
)

Begin {
    #import the GroupPolicy Module
    Import-Module GroupPolicy
}

Process {
#create an XML report
[xml]$report=Get-GPOReport -Name $displayname -ReportType XML
#define the XML namespace
$ns=@{q3="http://www.microsoft.com/GroupPolicy/Settings/Registry"}
$nodes=Select-Xml -Xml $report -Namespace $ns -XPath "//q3:RegistrySetting" | 
select -expand Node | Where {$_.AdmSetting -eq 'false'}

if ($nodes) {
  #extra settings were found so get the GPO and write it to the pipeline
  Get-GPO -Name $Displayname
}

}

End {}

} #function

#Import-Module GroupPolicy
#Get-GPO -all | Test-GPOExtraRegistry 

Еще раз обозначим, что мы привели в посте лишь сухой остаток того, что было продемонстрировано в докладе. Сам доклад можно посмотреть здесь.

Бонусы:

  • Ссылка на скрипты
  • Слайды
  • Бесплатная книга по Group Policy + PowerShell от одного из авторов доклада [ENG] (необходимо заполнить форму)

Также для построения отчетов по групповым политикам вы можете воспользоваться нашей программой NetWrix Group Policy Change Reporter.

If you change a lot of settings in the Local Group Policy Editor, and you now want to find all applied or enabled Group Policy settings on your Windows 10 system, then here is what you need to do. The Local Group Policy Editor plays a vital role in tweaking various system settings, and a wrong change can make or break your smooth user experience. If you made some change and you now do not remember the path, here is how to find it out.

There are four different ways to get the list of all enabled or applied changes that you have made in the Local Group Policy Editor, and they are mentioned below.

How to check the Group Policy applied on a computer

To find all applied or enabled Group Policy settings in Windows 10, you have four ways-

  1. Use Local Group Policy Editor’s State option
  2. Use the filter in Local Group Policy Editor
  3. Use Command line
  4. Use Resultant Set of Policy Tool (rsop.msc)

To know more about these methods, read on.

1] Use Local Group Policy Editor’s State option

It is the easiest method to find all the Enabled, Disabled, and Not configured policies within moments. The best thing is that you do not need to go through any complex step to get it done. Only one-click can show you all the changes on your screen.

Open the Local Group Policy Editor on your computer. For that, press Win+R, type gpedit.msc and hit the Enter button. After that, find a folder from your left-hand side. If you do not want to get the list by folder and instead, you want to get the same across whole Local Group Policy Editor, you need to expand the Administrative Templates and select All Settings option.

Then, you should see all the settings on your right side. It should show a column called State. You need to click on the “State” text.

How to check the Group Policy applied on a Windows 10 computer

Now, your Local Group Policy Editor should show all the enabled settings on the top of the line. From here, you can follow the usual method to make a change if required.

2] Use the filter in Local Group Policy Editor

Microsoft included the “filter” option in the Local Group Policy Editor so that users can apply numerous conditions to find a specific type of setting. You can utilize that function to find all the enabled or applied settings in this tool. To get started, you need to right-click on a folder after opening the Local Group Policy Editor and select Filter Options.

Alternatively, you can go to Action > Filter Options. Then, select Yes from the Configured drop-down list and click on the OK button.

Now you can find only those folders, which are holding an Enabled setting.

3] Use Command line

Find all applied or enabled Group Policy settings

It is another easy way to find all the enabled Group Policy settings in Windows PC. All you need to do is to enter a command that will let you show all settings and the exact path to find it in the Local Group Policy Editor.

At first, open the Command Prompt on your Windows computer, and enter this command-

gpresult /Scope User /v

You should see the results.

4] Use Resultant Set of Policy Tool (rsop.msc)

It is an in-built tool of Windows OS that allows users to see all the Group Policy settings that have applied to your computer. It is a graphical version of the command as mentioned earlier, and the user interface is almost the same as Local Group Policy Editor.

To get started, open the Run prompt by press Win+R keys together, type rsop.msc, and hit the Enter button. It should take a couple of seconds to load everything, and at the end, you can find a window like this-

Now you must navigate to the folders to check which setting is applied to your computer. The good news is that it shows only those folders where you can find an enabled setting or policy. Please note that this tool doesn’t allow you to change the setting.

These are some of the best methods to find all applied or enabled Group Policy settings in Windows 10.

  • Как посмотреть какая процессор на компьютере windows 10
  • Как посмотреть какое железо стоит на компьютере на windows 10
  • Как посмотреть информацию о мониторе windows 10
  • Как посмотреть какие комплектующие в пк windows 10
  • Как посмотреть какая программа установлена на компьютере windows