Элементы проверки работоспособности групповой политики Active Directory (часть 1)

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

Совет. Мы объяснили, почему важно иметь записи SRV для всех контроллеров домена, зарегистрированных на DNS-сервере. Мы также предоставили сценарий PowerShell, который можно использовать для сбора зарегистрированных и отсутствующих записей SRV для каждого контроллера домена.

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

В большой производственной среде Active Directory, где у вас есть сотни объектов групповой политики, становится сложно обеспечить правильную настройку объектов групповой политики. Когда дело доходит до проверки работоспособности объектов групповой политики, существует как минимум восемь важных проверок групповой политики, которые вы всегда должны выполнять, как указано ниже:

• Сколько объектов групповой политики настроено с фильтрами WMI и правильно ли они настроены?
• Делали ли вы резервные копии объектов групповой политики?
• Сколько объектов групповой политики отключено и почему они отключены?
• Сколько объектов групповой политики не применяются?
• Использует ли ваш объект групповой политики текст описания, чтобы объекты групповой политики можно было легко идентифицировать?
• Используют ли объекты групповой политики стандартное соглашение об именах и настроены ли они с более короткими именами?
• Настроено ли наследование политики блокировки и настроены ли они для необходимых объектов групповой политики?
• Для скольких объектов групповой политики установлены параметры «Нет переопределения»?

Хотя вы можете запускать крошечные команды PowerShell для сбора необходимой информации из Active Directory и помогать вам поддерживать рабочие объекты групповой политики, но затем вам необходимо разработать сценарии PowerShell, чтобы выходные данные отображались в файле CSV по вашему выбору, а выходные данные должны генерировать отчет, который перечисляет только необходимые данные. Например, при получении списка объектов групповой политики с настроенными фильтрами WMI вы всегда хотели бы возвращать выходные данные только тех объектов групповой политики, для которых настроены фильтры WMI, а не всех. Точно так же при сборе списка объектов групповой политики, для которых не было резервных копий, вы всегда хотели бы видеть список объектов групповой политики, для которых не были созданы резервные копии, а не те объекты групповой политики, для которых были недавно созданы резервные копии.

Мы работали над несколькими сценариями GPO PowerShell, которые могут оказаться полезными и включить их в ежедневную процедуру проверки работоспособности Active Directory. В части 1 этой серии статей мы объясним, как создавать отчеты об объектах групповой политики, для которых не задан текст описания. В части 2 и последующих частях мы объясним, как использовать несколько сценариев PowerShell для получения списка объектов групповой политики, которые были настроены в доменах, но не применяются к каким-либо объектам, получения списка объектов групповой политики, для которых настроены фильтры WMI и чтобы убедиться, что фильтры WMI настроены правильно и так далее.

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


$TotNo=0
$ItemCount=0
$ТестТекст = ""
$ТестСтатус=""
$Сумвал = ""
ForEach ($ThisDomain в Get-Content "$GDomList")
{
$PDCServerToConnect = "Неизвестно"
ЕСЛИ ($HitWin2012DC -eq "Да" -и $CredInputForPS -eq "Файл")
{
$PDCCSV = Импорт-CSV $PrefDCFile
ForEach ($ItemNow в $PDCCSV)
{
ЕСЛИ ($ItemNow.Domain -eq $ThisDomain)
{
$PDCServerToConnect = $ItemNow.'Предпочитаемый контроллер домена'
ломать
}
}

}
еще
{
$PDCCSV = Импорт-CSV $PDCListFile
ForEach ($ItemNow в $PDCCSV)
{
ЕСЛИ ($ItemNow.Domain -eq $ThisDomain)
{
$PDCServerToConnect = $ItemNow.PDCServer
ломать
}
}
}

$Ошибка.Очистить()
$AllGPODes = Invoke-Command -ComputerName $PDCServerToConnect -Script { param($R1Now) Get-GPO -ALL -Domain
$R1Сейчас | где{ $_.DEscription -eq $null } } -Credential $Creds -ArgumentList $ThisDomain


ЕСЛИ ($Error.count -eq 0)
{
}
еще
{
$ErrorOrNot="Да"
}
ЕСЛИ ($ErrorOrNot -eq "Да")
{
$TestText = "Пожалуйста, убедитесь, что контроллер домена доступен для выполнения Dynamic Pack."
$Сумвал = ""
$TestStatus="Ошибка выполнения динамического пакета."
}
еще
{
$Items = $AllGPOдес
$ItemCount=$AllGPOdes.Count
$ Окончательный текст = ""
$SumVal=$ItemCount

ForEach ($ThisItem в $Items)
{
$ThisDesToCheck = $ThisItem.Description
$StatusNow="ОК"
ЕСЛИ ($ThisDesToCheck -eq $Null)
{
$TotNo++
$StatusNow="Не в порядке"
}
$FinalVal=$ThisDomain+","+$PDCServerToConnect+","+$ThisItem.DisplayName+","+$ThisItem.Description+","+$StatusNow
Добавить содержимое "$TestCSVFile" $FinalVal
}

ЕСЛИ ($TotNo -ge 0)
{
$TestText = "Некоторым объектам групповой политики не задано описание. Рекомендуется установить описание для каждого объекта групповой политики, чтобы идентифицировать функцию.
GPO легко."
$TestStatus="Средний"
$SumVal = $TotNo
}
ЕСЛИ ($TotNo -eq 0)
{
$TestText = "Все GPO определяются текстом описания."
$TestStatus="Пройдено"





$STR = $ADTestName +","+$TestStartTime+","+$TestStatus+","+$SumVal +","+$TestText
 

### Конец сценария ###

После завершения выполнения скрипта для всех доменов будет создан файл отчета в формате CSV, как показано на рисунке 1 ниже. Имя файла отчета — RVRecordsStatus.CSV, и он находится в .

Изображение 4532


Рисунок 1. Отображение отчета в формате CSV, сгенерированного сценарием PowerShell

Как вы можете видеть в отчете, сгенерированном сценарием, сценарий сообщал « ПРЕДУПРЕЖДЕНИЕ » в столбце « Окончательное состояние » для контроллеров домена, у которых отсутствуют записи SRV. Как показано в отчете выше, на контроллерах домена DC3.ITDynamicPacks.Net, DC4.ITDynamicPacks.Net и DC7.ITDynamicPacks.Net отсутствуют записи LDAP SRV в доменной зоне DNS. Получив отчет SRV, вы можете зарегистрировать записи SRV на DNS-сервере, чтобы обеспечить бесперебойную работу Active Directory.

Если вы используете профилировщик работоспособности Active Directory, вы можете выполнить динамический пакет тестирования отдельных записей SRV контроллера домена для леса Active Directory или домена, чтобы отобразить состояние записей SRV в консоли профилировщика работоспособности Active Directory, как показано на рисунке 2 ниже..


Рисунок 2. Отображение состояния записей SRV для каждого контроллера домена в AD Health Profiler

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

Резюме

Мы объяснили важность записей SRV в среде Active Directory. Контроллеры домена полагаются на записи SRV, зарегистрированные на DNS-сервере, для выполнения важных функций, таких как репликация изменений и предоставление клиентам Active Directory возможности находить службы контроллера домена. Любое приложение, использующее записи SRV для поиска контроллера домена, завершится ошибкой, если записи SRV для контроллеров домена не зарегистрированы.
Мы предоставили сценарий PowerShell, который можно использовать для сбора отчета о записях SRV для всех контроллеров домена и легкого исправления отсутствующих.