Как узнать GUID объекта групповой политики

Обновлено 30.10.2019

gpo logoДобрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами говори про WMI фильтрацию GPO. Сегодня мы продолжим изучение объектов групповой политики и научимся у них определять GUID и обратно по GUID найти нужный нам GPO объект. Я опишу ситуации при которых вы, это сможете применять, более тонко управлять своей доменной инфраструктурой и локализовывать проблемы с отработкой политик на конечные объекты.

Описание ситуации

Когда мы говорим про инфраструктуру Active Directory, то у нас невольно сразу вспоминается понятие групповой политики, и это не удивительно, так как в AD, это одна из фишек централизованного управления. GPO штука отличная, но и с ней могут быть сложности, например, она может не применяться, и как это лечится я показывал. Еще бывает ошибка Ошибка при обработке групповой политики с кодом 1054. Но применимо к нашей задаче, можно отнести ошибку в журналах Windows с кодом 1058, которая звучит:

Ошибка при обработке групповой политики. Попытка чтения файла "\\root.pyatilistnik.org\sysvol\PICompany.ru\Policies\{E26B087E-2CF3-40C9-8910-66E48A1E53C5}\gpt.ini" с контроллера домена была неудачной. Параметры групповой политики не могут быть применены, пока не будет исправлена эта ситуация. Это может быть временным явлением, его возможные причины:
a) Ошибка разрешения имен или проблемы сетевого подключения к текущему контроллеру домена.
b) Запаздывание репликации Active Directory (созданный на другом контроллере домена файл еще не реплицирован на текущий контроллер домена).
c) Отключен клиент распределенной файловой системы (DFS).

Событие 1058

Из ошибки видно, что некая политика, которая имеет GUID E26B087E-2CF3-40C9-8910-66E48A1E53C5, не смогла применится для определенного пользователя. Сомневаюсь, что кто-то знает по номеру GUID свои объекты GPO. Вот для таких случаев, вы должны уметь их определять у объектов групповой политики, и находить по ним нужную GPO, это можно сравнить, когда мы узнавали SID пользователя и по SID значению находили пользователя.

Методы получения GUID у объекта GPO

GUID (Globally Unique Identifier) - это уникальный идентификатор, который не повторяетcя нигде, по сути это 128-битный номер, или как говорит википедия (2128 или 3,4028×1038 "https://ru.wikipedia.org/wiki/GUID").

Самой простой метод определить GUID идентификатор, это открыть редактор групповой политики. Найти в контейнере "Объекты групповой политики" нужную вам политику. Выбрать ее и перейти в ней на вкладку "Сведения". Там вы увидите время создания, модификации и уникальный код, это и есть GUID, в моем примере у политики "Управление UIPI" код {49DF37C4-D9AF-48D0-85AA-96E91B6CC13A}

Как узнать GUID GPO-01

Если приступить к редактированию политики и зайти в ее свойства, то вам в новом окне, на вкладке "Общие" будет показано уникальное имя, состоящее из GUID {49DF37C4-D9AF-48D0-85AA-96E91B6CC13A}, у вас будет свой.

Как узнать GUID GPO-02

Далее можно воспользоваться поиском в оснастке управления групповой политикой, для этого щелкните правым кликом по корню вашего домена и из контекстного меню выберите пункт "Найти"

Поиск групповой политики

В поисковой форме, в пункту "Элемент поиска" выберите значение "имя объекта групповой политики", в условии равно или содержит, в значении указываем нужное слово или имя. После чего нажимаем добавить.

фильтр поиска GPO

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

Как узнать GUID GPO через поиск

Еще одним из лучших и универсальных методом просмотра информации по объектам GPO, является оболочка PowerShell с ее огромным количеством командлетов. Как запускать PowerShell от имени администратора я уже писал, нам тут поможет командлет Get-GPO, про него можете почитать по ссылке:

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee461059(v=technet.10)

первым делом мы импортируем модуль групповой политики

Import-Module GroupPolicy

Для того, чтобы вывести все GPO введите

Get-GPO -All

Вы получите все объекты, где сможете увидеть ID, который соответствует GUID.

Как узнать GUID GPO через powershell

Так как политик может быть огромное количество, то вы можете отфильтровать по имени, например вот так:

Get-GPO -Name "Управление UIPI"

На выходе получите одну конкретную запись

Если хотите сделать красивый вывод в отдельном окне, то добавьте ключ Out-GridView

Get-GPO -all | Out-GridView

на выходе будет удобная форма в отдельном графическом окне, где первым столбцом будет ID с GUID значением.

Как узнать GUID GPO из Power Shell

Как по GUID найти GPO

Напоминаю, что по умолчанию все объекты групповых политик располагаются на контроллерах домена, по пути C:\Windows\SYSVOL\sysvol\имя вашего домена\Policies. В данной папке все политики как раз и будут иметь в имени значение GUID.

место хранения объектов GPO

Теперь у нас задача иная, мы зная GUID политики, нам нужно вычислить ее имя, чтобы понять, что за GPO могла не отработать или наоборот, что GPO прилетела и могла, что-то сломать. Как обычно методов несколько, и вы сами будите использовать те, что вам более приемлемы.

  • Первым методом лично для меня я могу выделить все то же PowerShell. Напоминаю, что у меня есть ID (GUID), который я получил от политики "Управление UIPI" {49DF37C4-D9AF-48D0-85AA-96E91B6CC13A}. Предположим, что мне нужно вычислить именно его. В оболочке введите команду:

Get-GPO -Guid "{49DF37C4-D9AF-48D0-85AA-96E91B6CC13A}"

получение имени GPO по GUID через PowerShell

На выходе вы получите вывод, где нас будет интересовать поле DisplayName, в котором будет содержаться имя объекта групповой политики:

DisplayName : Управление UIPI
DomainName : root.pyatilistnik.org
Owner : ROOT\Администраторы домена
Id : 49df37c4-d9af-48d0-85aa-96e91b6cc1
GpoStatus : AllSettingsEnabled
Description :
CreationTime : 16.05.2019 13:58:23
ModificationTime : 16.05.2019 15:31:07
UserVersion : AD Version: 0, SysVol Version: 0
ComputerVersion : AD Version: 9, SysVol Version: 9
WmiFilter :

получение имени GPO по GUID через ADUC

В поле найти, выберите "Пользовательский поиск", далее переходим на вкладку "Дополнительно" и вводим вот такой LDAP запрос:

(&(objectCategory=groupPolicyContainer)(name={49DF37C4-D9AF-48D0-85AA-96E91B6CC13A}))

получение имени GPO по GUID через LDAP

Так же через вкладку "Вид", добавьте столбец "Выводимое имя". Именно в нем вы увидите имя политики.

  • Третьим методом получения имени объекта групповой политики по ID (GUID) значению, это использование поиска в самой оснастке управления групповой политикой. В поисковой форме в поле "Элемент поиска" установите значение код GUID, в условии "Равно" и в значении сам код. После чего нажмите добавить.

получение имени GPO по GUID через оснастку управления GPO

После того как условие поиска сформировано, можно нажимать кнопку "Найти". В результате чего вы вычислите искомое GPO.

получение имени GPO по GUID-05

dsquery * -filter "(objectCategory=groupPolicyContainer)" -attr displayName name -limit 0

получение имени GPO по GUID-06

На выходе вы увидите GUID GPO и его имя. Вот такие вот не хитрые методы получения GUID у GPO и обратно. Так же можете воспользоваться вот таким скриптом:

$results1 = Test-Path C:\GPOReports
# Создаем папку в которую положим наш отчет
if ($results1 = "False") {
New-Item C:\GPOReports -type directory -Force
}
else {
}
$results2 = Test-Path C:\GPOReports\GPOReportsGUID.html

# Создание файла
if ($results = "False") {
New-Item C:\GPOReports\GPOReportsGUID.html -type file -force
}
else {
}
Import-Module -Name grouppolicy
$guidgpo = Read-Host "Enter the GUID of the GPO (Do Not Include Brackets {}"
Get-GPOReport -Domain ТУТ Пишем свой домен -Server Имя вашего сервера DC -GUID $guidgpo -ReportType HTML -Path C:\GPOReports\GPOReportsGUID.html

# Запуск нашего файла отчета в браузере
Invoke-Item C:\GPOReports\GPOReportsGUID.html

На первом шаге вводите без {} номер вашего GUID и нажимаете Enter

Поиск GPO по GUID

В результате поисков у вас откроется отчет с вашей политикой.

Найденная GPO

С вами был Иван Семин, автора и создатель IT портала Pyatilistnik.org.

Автор - Сёмин Иван

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *