Active Directory это надежный, но в то же время крайне сложный и критичный сервис, от работоспособности которого зависит работа всей вашей сети. Системный администратор должен постоянно мониторить корректность работы Active Directory. В этой статье мы рассмотрим основные методики, позволяющие вам быстро проверить и диагностировать состояние вашего домена Active Directory, контроллеров домена и репликации.
Содержание:
- Проверка состояния контроллеров домена с помощью Dcdiag
- Проверка ошибок репликации между контроллерами домена Active Directory
Проверка состояния контроллеров домена с помощью Dcdiag
Базовая встроенная утилита для проверки состояния контролеров домена – dcdiag.
Чтобы быстро проверить состояние конкретного контроллера домена AD воспользуйтесь командой:
dcdiag /s:DC01
Данная команда выполняет различные тесты указанного контроллера домена и возвращает статус по каждому тесту (Passed| Failed).
Типовые тесты:
- Connectivity – проверяет регистрацию DC в DNS, выполняет тестовые LDAP и RPC подключения;
- Advertising – проверяет роли и сервисы, опубликованные на DC;
FRSEvent – проверяет наличие ошибок в службе репликации файлов (ошибки репликации SYSVOL); - FSMOCheck – проверяет, что DC может подключиться к KDC, PDC, серверу глобального каталога;
- MachineAccount — проверяет корректность регистрации учетной записи DC в AD, корректность доверительных отношения с доменом;
- NetLogons – проверка наличие прав на выполнение репликации;
- Replications – проверка статуса репликации между контроллерами домена и наличие ошибок;
- KnowsOfRoleHolders – проверяет доступность контроллеров домена с ролями FSMO;
- Services – проверяет, запущены ли на контроллере домена необходимые службы;
- Systemlog – проверяет наличие ошибок в журналах DC;
- И т.д.
Полное описание всех доступных тестов есть здесь.
Помимо стандартных тестов, которые выполняются по-умолчанию, можно выполнить дополнительные проверки контроллера домена:
- Topology – проверяет, что KCC сгенерировал полную топологию для всех DC;
- CheckSecurityError
- CutoffServers – находит DC, который не получает репликацию из-за того, что партнёр недоступен;
- DNS – доступны 6 проверок службы DNS (/DnsBasic, /DnsForwarders, /DnsDelegation, /DnsDymanicUpdate, /DnsRecordRegistration, /DnsResolveExtName)
- OutboundSecureChannels
- VerifyReplicas – проверяет корректность репликации разделов приложения
- VerifyEnterpriseReferences
Например, чтобы проверить корректность работы DNS на всех контроллерах домена, используйте команду:
dcdiag.exe /s:DC01 /test:dns /e /v
В результате должна появится сводная таблица по проверкам разрешения имен службой DNS на всех контроллерах (если все ОК, везде должно быть Pass). Если где-то будет указано Fail, нужно выполнить проверку этого теста на указанном DC:
dcdiag.exe /s:DC01 /test:dns /DnsForwarders /v
Чтобы получить расширенную информацию по результатам тестов контроллера домена и сохранить ее в текстовый файл, используйте команду:
dcdiag /s:DC01 /v >> c:\ps\dc01_dcdiag_test.log
Следующая команда PowerShell позволяет вывести только информацию о выполненных тестах:
Dcdiag /s:DC01 | select-string -pattern '\. (.*) \b(passed|failed)\b test (.*)'
Чтобы получить состояние всех контроллеров домена, используйте:
dcdiag.exe /s:winitpro.ru /a
Если нужно вывести только найденные ошибки, используйте параметр /q:
dcdiag.exe /s:dc01 /q
В моем примере утилита обнаружила ошибки репликации:
There are warning or error events within the last 24 hours after the SYSVOL has been shared. Failing SYSVOL replication problems may cause Group Policy problems. ......................... DC01 failed test DFSREvent
Чтобы утилита dcdiag попробовала автоматически исправить ошибки в Service Principal Names для данной учетной записи DC, используйте параметр /fix:
dcdiag.exe /s:dc01 /fix
Проверка ошибок репликации между контроллерами домена Active Directory
Для проверки репликации в домене используется встроенная утилита repadmin.
Базовая команда проверки репликации:
repadmin /replsum
Утилита вернула текущий статус репликации между всеми DC. В идеальном случае значение largest delta не должно превышать 1 час (зависит от топологии и настроек частоты межсайтовых репликаций), а количество ошибок = 0. В моем примере видно, что одна из последних репликаций заняла 14 дней, но сейчас все OK.
Чтобы выполнить проверку для всех DC в домене:
repadmin /replsum *
Проверку межсайтовой репликции можно выполнить так:
repadmin /showism
Для просмотра топологии репликации и найденных ошибках, выполните:
repadmin /showrepl
Данная команда проверит DC и вернет время последней успешной репликации для каждого раздела каталога (last attempt xxxx was successful).
Для вывода расширенной информации, используйте:
repadmin /showrepl *
Для запуска репликации паролей с обычного контроллера домена на контроллер домена на чтение (RODC) используется ключ /rodcpwdrepl.
Опция /replicate позволяет запустить немедленную репликацию указанного раздела каталога на определенный DC.
Для запуска синхронизации указанного DC со всеми партнерами по репликации, используйте команду
replmon /syncall <nameDC>
Для просмотра очереди репликации:
repadmin /queue
В идеальном случае очередь должна быть пуста:
Проверьте время создания последней резервной копии текущего контроллера домена:
Repadmin /showbackup *
Вы также можете проверить состояние репликации с помощью PowerShell. Например, следующая команда выведет все обнаруженные ошибки репликации в таблицу Out-GridView:
Get-ADReplicationPartnerMetadata -Target * -Partition * | Select-Object Server,Partition,Partner,ConsecutiveReplicationFailures,LastReplicationSuccess,LastRepicationResult | Out-GridView
Можете дополнительно с помощью Get-Service проверить состояние типовых служб на контроллере домена:
- Active Directory Domain Services (ntds)
- Active Directory Web Services (adws) – именно к этой службе подключаются все командлеты из модуля AD PowerShell
- DNS (dnscache и dns)
- Kerberos Key Distribution Center (kdc)
- Windows Time Service (w32time)
- NetLogon (netlogon)
Get-Service -name ntds,adws,dns,dnscache,kdc,w32time,netlogon -ComputerName dc03
Итак, в этой статье мы рассмотрели базовые команды и скрипты, которые можно использовать для диагностики состояния вашего домена Active Directory. Вы можете использовать их во всех поддерживаемых версия Windows Server, в том числе на контроллерах домена в режиме Server Core.
Active Directory это довольно сложная система, даже если ваш домен состоит из двух контроллеров доменов в одном сайте AD. Администратор домена должен уметь быстро проверить состояние контроллеров домена, наличие проблем репликации и исправить найденые проблемы. В этой статье мы рассмотрим типовые команды, которые можно использовать для проверки состояния домена Active Directory и поиска возможных ошибок.
DCDiag – важная утилита для проверки состояния контроллеров домена. Войдите на любой контроллер домена, запустить командную строку и выполните команду:
dcdiag /e /v /q
Это общий тест состояния контроллеров домена и Active Directory. В данном отчете буду указаны только ошибки, которые требует внимание администратора домена.
Затем нужно проверить здоровье DNS серверов (я запускаю эти команды в консоли PowerShell):
DCDiag /Test:DNS /e /v /s:msk-dc01.test.com >c:\PS\DcdiagDNStest.txt
Затем откройте полученный отчет:
Notepad c:\PS\DcdiagDNStest.txt
Если со службой DNS нет проблем, то в разделе “Summary of DNS test results” везде должно быть указано PASS.
Если в отчете есть ошибки, нужно исправить их вручную. Если вручную исправить ошибки DNS не удается, попробуйте исправить их автоматически командой dcdiag с параметром fix:
DCDiag /Test:DNS /e /v /s:msk-dc01.test.com /fix
Затем на всех всех контроллерах домена выполните команду:
ipconfig /registerdns
После проверки контроллеров домена и DNS службы нужно проверить состояние репликации Active Directory.
Войдите на любой DC и выполните проверку репликации командой:
repadmin /replsum
Если наибольшее из значений largest delta для любого DC не превышает 1 часа и replication fails = 0, значит в вашем домене нет проблем репликации
Утилиты dcdiag и repadmin доступны на любом DC с ролью ADDS. Если вы хотите использовать эти утилиты в десктопной Windows 10, нужно установить RSAT.
Если вы обнаружили ошибки репликации, можно получить подробную информацию о них командой:
repadmin /showreps
Данная команда покажет какой контекст наименования не реплицируется в AD.
Следующая команда используется для быстрой проверки репликации на конкретном сервере. Если нужно проверить репликацию на всех DCs, используйте параметр wildcard (может занять длительное время)
repadmin /replsummary [DCname|wildcard]
Проверьте USN записи:
repadmin /showutdvec
Если нужно принудительно синхронизировать конкретный контроллер домена с другими участниками репликации, выполните команду:
replmon /syncall msk-dc01
Далее обязательно проверьте синхронизацию времени на контроллерах домена командой:
w32tm /monitor
NTP offset должен быть около 0 для всех DC. Если нет, вам нужно схему проверить синхронизацию времени в вашем домене Active Directory.
Проверьте, что на всех контроллерах домена есть расшаренные сетевые папки SYSVOL и Netlogon. Эти папки нужны для применения и репликации групповых политик (объектов GPO).
Список общих папок на DC можно вывести командой:
net share
Теперь проверьте корректность работы Netlogons в Active Directory:
dcdiag /test:netlogons
Если с Netlogon все в порядке для всех тестов должно быть указано passed test.
Осталось проверить на любом компьютере домена, что к нему применятся все назначенные политики. Для этого используется команда:
gpresult
Active Directory (AD) — это надёжный, но одновременно сложный и критичный сервис, от работы которого зависит функционирование всей корпоративной сети. Поэтому системный администратор должен регулярно следить за состоянием контроллеров домена и репликацией AD. В этой статье рассмотрим основные методики для проверки и диагностики здоровья домена Active Directory, контроллеров домена и процесса репликации.
Приобрести оригинальные ключи активации Windows Server можно у нас в магазине от 1190 ₽
Скачать дистрибутивы Windows Server можно у нас в каталоге.
Проверка состояния контроллеров домена с помощью Dcdiag
Базовая утилита для проверки состояния контроллеров домена — это dcdiag.
Чтобы быстро проверить состояние конкретного контроллера домена AD, используйте команду:
dcdiag /s:DC01
Эта команда выполняет различные тесты контроллера домена и возвращает статус по каждому тесту (Passed|Failed). Основные тесты включают:
— Connectivity — проверяет подключение к DNS, LDAP и RPC;
— Advertising — проверяет роли и сервисы, опубликованные на DC;
— FRSEvent — проверяет ошибки репликации файлов (SYSVOL);
— FSMOCheck — проверяет доступность серверов с ролями FSMO;
— MachineAccount — проверяет учетную запись контроллера домена;
— NetLogons – проверка наличие прав на выполнение репликации;
— Replications — проверяет статус репликации между контроллерами;
— KnowsOfRoleHolders – проверяет доступность контроллеров домена с ролями FSMO;
— Services – проверяет, запущены ли на контроллере домена необходимые службы;
— Systemlog — проверяет ошибки в системных журналах.
Помимо стандартных тестов, которые выполняются по-умолчанию, можно выполнить дополнительные проверки контроллера домена:
Topology – проверяет, что KCC сгенерировал полную топологию для всех DC;
CheckSecurityError
CutoffServers – находит DC, который не получает репликацию из-за того, что партнёр недоступен;
VerifyReplicas – проверяет корректность репликации разделов приложения;
VerifyEnterpriseReferences
OutboundSecureChannels
DNS – доступны 6 проверок службы DNS (/DnsBasic, /DnsForwarders, /DnsDelegation, /DnsDymanicUpdate, /DnsRecordRegistration, /DnsResolveExtName)
Вы можете запустить расширенные проверки контроллера домена, например, для проверки службы DNS на всех DC:
dcdiag.exe /s:DC01 /test:dns /e /v
В результате должна появится сводная таблица по проверкам разрешения имен службой DNS на всех контроллерах (если все ОК, везде должно быть Pass). Если где-то будет указано Fail, нужно выполнить проверку этого теста на указанном DC:
dcdiag.exe /s:DC01 /test:dns /DnsForwarders /v
Если необходимо сохранить результаты тестов в текстовый файл для дальнейшего анализа, используйте команду:
dcdiag /s:DC01 /v >> c:\ps\dc01_dcdiag_test.log
Для вывода только информации о выполненных тестах можно воспользоваться PowerShell:
Dcdiag /s:DC01 | select-string -pattern '\. (.*) \b(passed|failed)\b test (.*)'
Чтобы проверить состояние всех контроллеров домена, используйте:
dcdiag.exe /s:winitpro.ru /a
Для вывода только найденных ошибок выполните команду:
dcdiag.exe /s:dc01 /q
В случае обнаружения ошибок, таких как проблемы с репликацией SYSVOL, вы можете попытаться автоматически исправить ошибки с помощью:
dcdiag.exe /s:dc01 /fix
Проверка ошибок репликации между контроллерами домена Active Directory
Для проверки репликации в домене используется встроенная утилита repadmin.
Базовая команда для проверки репликации:
repadmin /replsum
Эта команда возвращает сводку статуса репликации между всеми контроллерами домена. В идеале значение largest delta не должно превышать 1 час (в зависимости от настройки частоты репликации), а количество ошибок должно быть равно 0. В нашем примере видно, что одна из последних репликаций заняла 14 дней, но сейчас все OK.
Для проверки репликации между всеми DC выполните:
repadmin /replsum *
Чтобы проверить межсайтовую репликацию, используйте:
repadmin /showism
Для просмотра топологии репликации и возможных ошибок выполните:
repadmin /showrepl
Эта команда возвращает время последней успешной репликации для каждого раздела каталога. Для вывода расширенной информации используйте:
repadmin /showrepl *
Для запуска репликации паролей с обычного контроллера домена на контроллер домена на чтение (RODC) используется ключ /rodcpwdrepl.
Опция /replicate позволяет запустить немедленную репликацию указанного раздела каталога на определенный DC.
Для запуска синхронизации указанного DC со всеми партнерами по репликации, используйте команду:
replmon /syncall
Для просмотра очереди репликации выполните:
repadmin /queue
Очередь репликации должна быть пуста в нормальном состоянии.
Также вы можете проверить время последнего резервного копирования контроллеров домена:
repadmin /showbackup *
Вы можете проверить состояние репликации с помощью PowerShell. Например, чтобы вывести все обнаруженные ошибки репликации в таблице:
Get-ADReplicationPartnerMetadata -Target * -Partition * | Select-Object Server,Partition,Partner,ConsecutiveReplicationFailures,LastReplicationSuccess,LastReplicationResult | Out-GridView
Можно использовать кастомный скрипт, для проверки состояния репликации в AD. Скрипт генерирует html файл и может отправить его на указанный email с помощью командлета Send-MailMessage.
Дополнительно можно проверить состояние типовых служб на контроллере домена, таких как ADDS, DNS и NetLogon:
Get-Service -name ntds,adws,dns,dnscache,kdc,w32time,netlogon -ComputerName dc03
Заключение:
Регулярная проверка состояния контроллеров домена и репликации Active Directory — важная задача, которая позволяет своевременно выявить проблемы и предотвратить сбои в работе AD. Утилиты dcdiag и repadmin предоставляют удобные инструменты для диагностики и исправления ошибок в домене, что позволяет поддерживать стабильность сети.
Администрирование инфраструктуры Active Directory — это непростой процесс. От правильного взаимодействия серверов зависит работа всей корпоративной сети, даже если у вас всего парочка контроллеров домена и один локальный сайт.
Утилита dcdiag позволяет выполнять различные тесты над инфраструктурой Active Directory и запрашивать диагностическую информацию о контроллерах домена.
Синтаксис dcdiag
Общий синтаксис
dcdiag [/s:<DomainController>] [/n:<NamingContext>] [/u:<Domain>\<UserName> /p:{* | <Password> | ""}] [{/a | /e}] [{/q | /v}] [/i] [/f:<LogFile>] [/c [/skip:<Test>]] [/test:<Test>] [/fix] [{/h | /?}] [/ReplSource:<SourceDomainController>]
Параметры dcdiag:
- /s:<DomainController>
Указывает контроллер домена. Если не указано, то используется локальный контроллер домена. Не используется в тестах DcPromo и RegisterInDns, которые можно выполнить только локально. - /n:<NamingContext>
Контекст именования в форматах NetBIOS, DNS (FQDN), DN. - /u:<Domain>\<UserName> /p:{* | <Password> | «»}
Запускает dcdiag от имени другого пользователя. По умолчанию dcdiag выполняется от имени текущего пользователя. - /a
Тестировать все серверы указанного сайта. - /e
Тестировать все серверы леса, перекрывает /a. - /q
Тихий режим. Выводятся только ошибки. - /v
Подробный режим. Выводится дополнительная информация. - /i
Игнорировать некритичные ошибки. - /fix
Только для теста MachineAccount. Исправление некорректных Service Principal Names (SPNs) на контроллере домена. - /f:<LogFile>
Вывод результатов в лог. - /c
Выполняет все тесты, кроме DCPromo и RegisterInDNS. Включает тесты не по умолчанию: Topology, CutoffServers, OutboundSecureChannels. Можно использовать совместно со /skip для пропуска определённых тестов. - {/h | /?}
Помощь. - /test:<Test>
Выполнить указанный тест. Дополнительно выполняется тест Connectivity. - /ReplSource:<SourceDomainController>
Только для теста CheckSecurityError. Проверяет соединение между контроллером домена, на котором выполняется команда, и исходным контроллером домена. SourceDomainController — это NetBIOS, DNS (FQDN) или DN имя сервера, который будет исходным контроллером домена для репликации.
Синтаксис для теста DNS
dcdiag /test:DNS [/DnsBasic | /DnsForwarders | /DnsDelegation | /DnsDynamicUpdate | /DnsRecordRegistration | /DnsResolveExtName [/DnsInternetName:<InternetName>] | /DnsAll] [/f:<LogFile>] [/x:<XMLLog.xml>] [/xsl:<XSLFile.xsl> or <XSLTFile.xslt>] [/s:<DomainController>] [/e] [/v]
Параметры dcdiag для теста DNS:
- /test:DNS
Тест DNS. По умолчанию /DnsAll. - /DnsBasic
Основные тесты DNS, соединение, конфигурация DNS клиента, доступность службы, существование зоны. - /DnsForwarders
Тесты DnsBasic и DNS-форвардинг. - /DnsDelegation
Тесты DnsBasic и проверка делегирования. - /DnsDynamicUpdate
Тесты DnsBasic и пределяет, включено ли динамическое обновление в зоне Active Directory. - /DnsRecordRegistration
Тесты DnsBasic tests и также проверяет, зарегистрированы ли записи A, CNAME и службы SRV. Кроме того, создается отчет об инвентаризации на основе результатов тестирования. - /DnsResolveExtName **[/DnsInternetName:<**InternetName>]
Тесты DnsBasic и делает resolve InternetName. Если DnsInternetName не указано, делает resolve www.microsoft.com. Если DnsInternetName указано, делает resolve указанного InternetName. - /DnsAll
Все тесты кроме DnsResolveExtName и создает отчет. - **/f:<**LogFile>
Вывод результатов в лог. - **/s:<**DomainController>
Указывает контроллер домена. Если не указано, то используется локальный контроллер домена. - /e
Все тесты DNS для всех контроллеров домена леса. - /v
Подробный режим. Выводится дополнительная информация. - /x:<XMLLog.xml>
Вывод результатов в <XMLLog.xml>. Только вместе с опцией /test:dns. - /xsl:<XSLFile.xsl> или <XSLTFile.xslt>
Добавляем файл стилей. Только вместе с опцией /test:dns /x:<XMLLog.xml>.
Тесты dcdiag
Тесты, которые нельзя пропустить
- Connectivity
Проверяет регистрацию DNS, ping, LDAP RPC для каждого контроллера домена.
Тесты, которые можно пропустить
- Replications
Проверяет возможность репликации между контроллерами домена и сообщает об ошибках репликации. - NCSecDesc
Проверяет, что дескрипторы безопасности в головках контекста именования имеют соответствующие разрешения для репликации. - NetLogons
Проверяет наличие соответствующих привилегий входа в систему для репликации. - Advertising
Проверяет, правильно ли контроллер домена сообщает о себе и о своих ролях, которые он должен выполнять. Этот тест завершиться неудачно, если служба NetLogon не запущена. - KnowsOfRoleHolders
Проверяет доступность контроллеров домена с ролями FSMO. - Intersite
Проверяет наличие ошибок, которые могут помешать нормальной репликации между сайтами. Результаты могут быть неточными. - FSMOCheck
Проверяет, что контроллер домена может подключиться к KDC, NTP, предпочтительному NTP, PDC, серверу глобального каталога. - RidManager
Проверяет RID мастера. - MachineAccount
Проверяет службы и регистрацию учетной записи целевого компьютера. Если обнаружена ошибка, ее можно исправить, указав параметры /FixMachineAccount или /RecreateMachineAccount. - Services
Проверяет службы контроллера домена. - OutboundSecureChannels
Проверяет наличие безопасных каналов между всеми контроллерами домена. - ObjectsReplicated
Проверяет правильность репликации Machine Account и Directory System Agent (DSA). Можно использовать **/objectdn:**dn и **/n:**nc параметры. - frssysvol
Проверяет FRS и SYSVOL. - frsevent
Проверка ошибок системы репликации. - kccevent
Проверка KCC. - systemlog
Проверка лога на наличие ошибок. - CheckSDRefDom
Проверяет, что все разделы каталога приложений имеют соответствующие домены ссылок на дескрипторы безопасности. - VerifyReplicas
Проверяет разделы каталога приложения на всех серверах, принимающих участие в репликации. - CrossRefValidation
Проверяет правильность перекрестных ссылок для доменов. - VerifyReferences
Проверяет, что системные ссылки не повреждены для FRS и репликации. - VerifyEnterpriseReferences
Проверяет, что системные ссылки не повреждены для FRS и репликации во всех объектах на каждом контроллере домена. - /skip:<Test>
Пропускает указанный тест. Connectivity выполняется всегда.
Тесты, которые не выполняются по умолчанию
- Topology
Проверяет, что KCC генерирует правильную топологию для всех контроллеров домена. - CheckSecurityError
Отчет об общем состоянии репликации в отношении безопасности Active Directory на контроллерах домена под управлением Windows Server 2003 SP1. Вы можете выполнить этот тест для одного или всех контроллеров домена на предприятии. По завершении теста dcdiag представляет сводку результатов, а также подробную информацию по каждому протестированному контроллеру домена и диагностику ошибок безопасности, о которых сообщил тест.
Cледующий аргумент является необязательным:
**/ReplSource:**SourceDomainController
Этот аргумент проверяет возможность создания связи репликации между реальным или потенциальным контроллером домена-источника (SourceDomainController) и локальным контроллером домена. - CutoffServers
Проверяет есть ли серверы репликации без партнёра. - DNS
Включает шесть дополнительных тестов. Имеет отдельный синтаксис, См. выше.
Тесты не для контроллеров домена
- DcPromo
Проверяет инфраструктуру DNS для любого компьютера, который вы хотите сделать контроллером домена. Если инфраструктура достаточна, вы можете сделать компьютер контроллером домена, указанном в параметре **/DnsDomain:**Active_Directory_Domain_DNS_Name. Этот параметр сообщает, требуются ли какие-либо изменения в существующей инфраструктуре DNS. Обязательным аргументом является **/DnsDomain:**Active_Directory_Domain_DNS_Name. Требуется один из следующих аргументов: /NewForest, /NewTree, /ChildDomain, /ReplicaDC. Если указан аргумент /NewTree, необходимо также указать аргумент **/ForestRoot:**Forest_Root_Domain_DNS_Name. - RegisterInDNS
Проверяет, может ли этот контроллер домена зарегистрировать Domain Controller Locator DNS записи. Эти записи должны присутствовать в DNS для других компьютеров, чтобы найти этот контроллер домена для домена Active_Directory_Domain_DNS_Name. Этот параметр сообщает, требуются ли какие-либо изменения в существующей инфраструктуре DNS. Обязательным аргументом является **/DnsDomain:**Active_Directory_Domain_DNS_Name.
Пример
Давайте продиагностируем какой-нибудь контроллер домена.
Запускаю прямо на контроллере домена выполнение всех тестов по умолчанию:
-
dcdiag
dcdiag Directory Server Diagnosis Performing initial setup: Trying to find home server... Home Server = ilab-dc * Identified AD Forest. Done gathering initial info. Doing initial required tests Testing server: Default-First-Site-Name\ILAB-DC Starting test: Connectivity ......................... ILAB-DC passed test Connectivity Doing primary tests Testing server: Default-First-Site-Name\ILAB-DC Starting test: Advertising ......................... ILAB-DC passed test Advertising Starting test: FrsEvent ......................... ILAB-DC passed test FrsEvent Starting test: DFSREvent ......................... ILAB-DC passed test DFSREvent Starting test: SysVolCheck ......................... ILAB-DC passed test SysVolCheck Starting test: KccEvent ......................... ILAB-DC passed test KccEvent Starting test: KnowsOfRoleHolders ......................... ILAB-DC passed test KnowsOfRoleHolders Starting test: MachineAccount ......................... ILAB-DC passed test MachineAccount Starting test: NCSecDesc ......................... ILAB-DC passed test NCSecDesc Starting test: NetLogons ......................... ILAB-DC passed test NetLogons Starting test: ObjectsReplicated ......................... ILAB-DC passed test ObjectsReplicated Starting test: Replications ......................... ILAB-DC passed test Replications Starting test: RidManager ......................... ILAB-DC passed test RidManager Starting test: Services ......................... ILAB-DC passed test Services Starting test: SystemLog ......................... ILAB-DC passed test SystemLog Starting test: VerifyReferences ......................... ILAB-DC passed test VerifyReferences Running partition tests on : ForestDnsZones Starting test: CheckSDRefDom ......................... ForestDnsZones passed test CheckSDRefDom Starting test: CrossRefValidation ......................... ForestDnsZones passed test CrossRefValidation Running partition tests on : DomainDnsZones Starting test: CheckSDRefDom ......................... DomainDnsZones passed test CheckSDRefDom Starting test: CrossRefValidation ......................... DomainDnsZones passed test CrossRefValidation Running partition tests on : Schema Starting test: CheckSDRefDom ......................... Schema passed test CheckSDRefDom Starting test: CrossRefValidation ......................... Schema passed test CrossRefValidation Running partition tests on : Configuration Starting test: CheckSDRefDom ......................... Configuration passed test CheckSDRefDom Starting test: CrossRefValidation ......................... Configuration passed test CrossRefValidation Running partition tests on : ilab Starting test: CheckSDRefDom ......................... ilab passed test CheckSDRefDom Starting test: CrossRefValidation ......................... ilab passed test CrossRefValidation Running enterprise tests on : ilab.local Starting test: LocatorCheck ......................... ilab.local passed test LocatorCheck Starting test: Intersite ......................... ilab.local passed test Intersite
Проверим корректность работа DNS:
-
dcdiag /s:ilab-dc /test:dns /e
dcdiag /s:ilab-dc /test:dns /e Directory Server Diagnosis Performing initial setup: * Identified AD Forest. Done gathering initial info. Doing initial required tests Testing server: Default-First-Site-Name\ILAB-DC Starting test: Connectivity ......................... ILAB-DC passed test Connectivity Doing primary tests Testing server: Default-First-Site-Name\ILAB-DC Starting test: DNS DNS Tests are running and not hung. Please wait a few minutes... ......................... ILAB-DC passed test DNS Running partition tests on : ForestDnsZones Running partition tests on : DomainDnsZones Running partition tests on : Schema Running partition tests on : Configuration Running partition tests on : ilab Running enterprise tests on : ilab.local Starting test: DNS ......................... ilab.local passed test DNS
Все тесты пройдены успешно.
Ссылки
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc731968(v=ws.11)
Testing the health of your local domain controller can be an extremely important task, especially when problems with Active Directory arise. Let’s look at an important tool in the toolbelt for Active Directory administrators called DCDiag. It allows admins to check domain controller health and other metrics to ensure everything works properly in Active Directory Domain Services (AD DS).
Common Active Directory Errors and Issues
Note the following common Active Directory errors and issues that can happen over time with Active Directory Domain Services environments.
Replication Delays: Sometimes, there can be a delay or failure in replicating data between domain controllers. This ensures that all controllers have the latest directory information
DNS Configuration Errors: Proper DNS setup is vital for Active Directory operations. Misconfigurations or errors in DNS might prevent domain controllers from locating each other or processing user requests efficiently.
Failed Trust Relationships: Trust relationships between domains are crucial for resource sharing in larger organizations. Failures could indicate potential security or access issues.
And others.
DCDiag commands
DCDiag commands (test) |
Test description |
Advertising |
Checks if the domain controller is correctly reporting itself and its role as the operations master. This test fails if the NetLogon service is not running. |
CheckSDRefDom |
Verifies the correctness of the reference domain security descriptors for each section of the program directories. |
Connectivity |
Checks DNS registration for each domain controller; sends a test echo packet to each domain controller and verifies LDAP connections to each domain controller, and RPC connections. |
CrossRefValidation |
Checks the correctness of cross-references for domains. |
RRSSysvol |
Checks readiness status for FRS SYSVOL. |
FRSEvent |
Checks for replication errors in the file replication service, which may indicate problems with SYSVOL replication and, thus, the integrity of copies of GPO objects. |
FSMOCheck |
Check the global catalog server, primary domain controller, preferred time server, and KDC. |
Intersite |
Checks for errors that may interfere with normal replication between AD sites. Microsoft warns that sometimes this test may not be accurate. |
KnowsOfRoleHolders |
Checks the ability to connect domain controllers to all five FSMO role holders. |
MachineAccount |
Verifies the correctness of the registration of the account of the target computer and the correctness of the service announcements of this computer. |
NCSecDesc |
Verifies permissions for replication in security descriptors for naming context headers. |
NetLogons |
Verifies the registration permissions that allow registration for each domain controller. |
ObjectsReplicated |
Verifies the replication of the directory server agent and computer account objects. |
OutboundSecureChannels |
Checks the presence of secure channels between all domain controllers in the domain. |
Replications |
Checks replication between domain controllers and reports all replication errors. |
RidManager |
Checks the operability and availability of the RID master. |
Services |
Verifies the health of all services required for the operation of the ADDS on the specified domain controller. |
VerifyEnterpriseReferences |
Checks the validity of the system links of the file replication service for all objects on all domain controllers in the forest. |
VerifyReferences |
Checks the validity of the file replication service system references for all objects on the specified domain controller. |
VerifyReplicas |
Checks the validity of all sections of the application directory on all servers involved in the replication. |
Topology |
Checks if the KCC generates the correct topology for all domain controllers. |
CutoffServers |
Checks if there are replication servers without a partner. |
DNS |
Includes six additional DNS (see below). |
DcPromo |
Checks the DNS infrastructure for any computer that you want to promote to a domain controller. If the infrastructure meets the requirements, you can install the ADDS domain controller role on the computer. |
DCDiag syntax
The general syntax of the DcDiag utility is:
dcdiag [/s:<DomainController>] [/n:<NamingContext>] [/u:<Domain>\<UserName> /p:{* | <Password> | ""}] [{/a | /e}] [{/q | /v}] [/i] [/f:<LogFile>] [/c [/skip:<Test>]] [/test:<Test>] [/fix] [{/h | /?}] [/ReplSource:<SourceDomainController>]
Useful Examples of DcDiag Command
It is recommended to run the DcDiag test on the domain controller itself, and not remotely. For example, let’s run a check on a DC01 domain controller:
dcdiag /s:DC01
Hint. Note that you are likely to encounter warning events when running DcDiag tests remotely. Tests such as SystemLog will fail unless you run dcdiag.exe locally on a domain controller.
All 30 tests for the specified domain controller are run when you run the tool without specifying parameters. In our example, it is clear that all tests passed successfully (Starting test: …. passed test). It means that everything is fine on this DC.
The test results will show Passed if the test was successful and DcDiag found no errors. The Failed message will appear next to the check name if an error is found.
General health check
DcDiag allows you to perform a quick general health test of Active Directory and domain controllers. To check all DCs in the domain, use the /e parameter. The following command will only list errors that require the AD administrator’s attention:
dcdiag /e /v /q
Specific tests
You can perform a specific AD test only by specifying its name, for example:
dcdiag /s:DC01 /a /test:NetLogons
Testing the RID master
You can test the health of the RID master FSMO owner in the domain:
Dcdiag.exe /TEST:RidManager /v
Performing a specific test from the checklist
Or you can exclude a specific test from the checklist:
dcdiag /s:DC01 /a /skip:Replication
Specifying credentials
When launching the DcDiag tool remotely, you need to specify the credentials with the domain admin privileges:
dcdiag /s:DC01 /u:contosoadmin /p:P@SSwoord
Saving the results to a file
In order to display the extended information and save the test results to files, use the command:
dcdiag /s:DC01 /v /f:c:\ps\dcdiag_report.log
Testing all domain controllers in the current site
To test all domain controllers in the current Active Directory site, run the command:
dcdiag /s:DC01 /a
Remove extra information
If you want to remove the extra information from the test results to display only the errors found, use the /q parameter (if no errors were found, the command will return nothing):
dcdiag /s:DC01 /q
Fixing errors with DCDIag
Some trivial errors can be fixed with DcDiag by itself. To do this, use the /fix switch:
dcdiag /s:DC01 /fix
Testing active directory domain controllers using dcdiag
Using the DNS tests, you can perform primary tests testing server name resolution service in AD. For example, to run all DNS tests for a specific domain controller and export the result to a text file:
DCDiag /Test:DNS /e /v /s:dc01.theitbros.com >c:\logs\DcdiagDNSCheck.txt
Open the resulting DNS test log file:
Get-Content c:\logs\DcdiagDNSCheck.txt
The result of each DNS test is listed in a column under the “Summary of DNS test results” section. In this example, all DNS tests passed successfully (PASS), except for the DNS forwarding test (FAIL):
You can only run certain DNS tests:
dcdiag /test:DNS [/DnsBasic | /DnsForwarders | /DnsDelegation | /DnsDynamicUpdate | /DnsRecordRegistration | /DnsResolveExtName [/DnsInternetName:<InternetName>] | /DnsAll] [/f:<LogFile>] [/x:<XMLLog.xml>] [/xsl:<XSLFile.xsl> or <XSLTFile.xslt>] [/s:<DomainController>] [/e] [/v]
/DnsBasic |
Basic DNS tests, connectivity, DNS client configuration, service availability, presence of a domain zone |
/DnsForwarders |
DnsBasic Tests and DNS Forwarding |
/DnsDelegation |
DnsBasic Tests and delegation verification |
/DnsDynamicUpdate |
Tests DnsBasic and checks if dynamic update is enabled for an Active Directory zone |
/DnsRecordRegistration |
DnsBasic tests and also checks if A records, CNAMEs, and SRV services are registered. In addition, an inventory report is generated based on the test results. |
/DnsResolveExtName **[/DnsInternetName:<**InternetName>] |
DnsBasic tests and resolves the InternetName. If DnsInternetName is not specified, the tool attempts to resolve www.microsoft.com address. If DnsInternetName is specified, it resolves the specified InternetName. |
Frequently Asked Questions
What is DCDiag?
DCDiag is a command-line tool designed for Active Directory Domain Services (ADDS) infrastructure. It assists administrators in performing an in-depth health check on domain controllers. This ensures the health of Active Directory services and verifies elements like DNS servers, AD replication, and more.
How do you initiate a DCDiag test on a local domain controller?
Launching a DCDiag test is straightforward. From an elevated command prompt, you can type the dcdiag command to start testing the local domain controller. If you need verbose output, run DCDiag with verbose options using the /v switch.
Why are DNS tests pivotal when using DCDiag?
DNS is integral to the functionality of an Active Directory. DCDiag performs DNS testing to verify things like basic DNS tests, checking if resource records are registered, ensuring dynamic updates for an active directory zone, and the DNS client configuration service.
How can I discern the health of my primary domain controller among multiple domain controllers?
To focus on the primary domain controller’s health, the DCDiag tool can be directed using specific parameters. To check domain controller health, use the command dcdiag /s:<YourPDCName>. This ensures that the health check is specific to your primary domain controller.
Can it check connectivity between domain controllers?
Absolutely. The DCDiag tool offers a test connectivity feature. This test ensures that domain controllers can communicate effectively, especially vital when dealing with multiple domain controllers within an enterprise.
What should I keep in mind when interpreting the test results from DCDiag?
After running DCDiag, review the results. While “Passed” indicates a successful test, “Failed” flags potential issues. But remember, not all error messages are emergencies. Some error messages don’t necessarily indicate a problem.
Can DCDiag diagnose replication errors?
Yes, it can. Using DCDiag, administrators can test replications to ensure that domain data is consistently replicated across all the servers. DCDiag will flag replication errors, enabling admins to intervene.
In scenarios where I suspect DNS-related issues, can DCDiag help?
Absolutely. With features like dcdiag DNS test DCDiag is an excellent tool to diagnose DNS. If DNS misconfigurations exist on a domain controller, DCDiag is effective at flagging them, ensuring your Active Directory is problem-free.
Wrapping up
Working with Active Directory and troubleshooting issues can be challenging. But with tools like DCDiag, it gets easier. As we have seen, this tool helps verify everything is working right, whether you’re looking at local domain controllers or remote AD DS environments.
With DCDiag, you can quickly check DNS settings, connectivity, and verify there are no other issues in the environment, like replication problems. It helps admins ensure everything is running smoothly and avoid larger problems down the line.
Cyril Kardashevsky
I enjoy technology and developing websites. Since 2012 I’m running a few of my own websites, and share useful content on gadgets, PC administration and website promotion.