Утилита dcdiag позволяет выполнить до 20 тестов над инфраструктурой Active Directory. Некоторые из тестов предоставляют диагностическую информацию об определенном контроллере домена. Многие тесты предоставляют информацию о конфигурации репликации в пределах леса.
Конкретные тесты, выполняемые этой утилитой, рассматриваются далее.
Тесты dcdiag
Тест | Описание |
Advertising | Проверяет, правильно ли контроллер домена сообщает о себе и о своей роли хозяина операций. Этот тест завершиться неудачно, если служба NetLogon не запущена |
CheckSDRefDom | проверяет правильность доменов ссылок дескрипторов безопасности для каждого раздела каталогов программ |
Connectivity | Проверяет регистрацию DNS для каждого контроллера домена, отправляет тестовый эхо-пакет на каждый контроллер домена и проверяет подключение по протоколам LDAP и RPC к каждому контроллеру домена |
CrossRefValidation | Проверяет правильность перекрестных ссылок для доменов |
RRSSysvol | проверяет состояние готовности для FRS SYSVOL |
FRSEvent | Проверяет ошибки репликации в работе службы репликации файлов, что может означать наличие проблем в репликации SYSVOL и, таким образом, целостности копий объектов групповых политик |
FSMOCheck | Не проверяет роли хозяев операций, а вместо этого запрашивает сервер глобального каталога, первичный контроллер домена, предпочтительный сервер времени, сервер времени и центр распространения ключей |
Intersite | Проверяет наличие ошибок, которые могут помешать нормальной репликации между сайтами. Компания Microsoft предупреждает, что иногда результаты этого теста могут оказаться неточными |
KCCEvent | Проверяет безошибочность создания объектов соединений для репликации между сайтами |
KnowsOfRoleHolders | Проверяет возможность подключения контроллеров домена ко всем пяти хозяевам операций |
MachineAccount | Проверяет правильность регистрации учетной записи целевого компьютера и правильность объявлений служб этого компьютера. Если обнаружена ошибка, ее можно исправить с помощью утилиты dcdiag, указав параметры /fixmachineaccount или /recreatemachineaccount |
NCSecDesc | Проверяет правильность разрешений для репликации в дескрипторах безопасности для заголовков контекста именования |
NetLogons | Проверяет правильность разрешений регистрации, позволяющих регистрацию, для каждого контроллера домена |
ObjectsReplicated | Проверяет правильность репликации агента сервера каталогов и объектов учетных записей компьютеров |
OutboundSecureChannels | Проверяется наличие безопасных каналов между всеми контроллерами домена в интересующем домене |
Replications | Проверяет возможность репликации между контроллерами домена и сообщает обо всех ошибках при репликации |
RidManager | Проверяет работоспособность и доступность хозяина относительных идентификаторов |
Services | Проверяет работоспособность всех служб, необходимых для работы контроллера домена, на указанном контроллере домена |
SystemLog | Проверяет безошибочность работы системного журнала |
VerifyEnterpriseReferences | Проверяет действительность системных ссылок службы репликации файлов для всех объектов на всех контроллерах домена в лесу |
VerifyReferences | Проверяет действительность системных ссылок службы репликации файлов для всех объектов на указанном контроллере домена |
VerifyReplicas | Проверяет действительность всех разделов каталога приложения на всех серверах, принимающих участие в репликации |
Вот синтаксис команды dcdiag:
dcdiag /s:<DomainController> [/n:<NamingContext>] [[/u:<domain\user>] [/p:<password>] ] [{/a|/e}{/q|/v}] [/i] [/f:<LogFile>] [/ferr:<ErrorLog>] [/c [/skip:<test]] [/test:<test>] [/fix]
Параметры этой команды рассматриваются в следующей таблице.
Параметры команды dcdiag
Параметр | Использование |
/s:<DomainController> | Используется для указания целевого контроллера домена |
/n:<NamingContext> | Используется для указания контекста именования. Можно указать контекст именования в форматах NetBIOS, DNS (FQDN) или DN |
/u:<domain\user> | Позволяет запустить команду от имени учетной записи другого пользователя |
/p:<password> | Используется вместе с параметром /u для указания пароля учетной записи пользователя |
/a | Тестирует все серверы в указанном сайте |
/e | Тестирует все серверы в пределах всего леса (подразумевает /a) |
/q | Сокращенный вывод. Отображаются только сообщения об ошибках |
/v | Подробный вывод. Отображается дополнительная информация |
/i | Игнорируются некритические сообщения об ошибках |
/f:<LogFile> | Перенаправляет вывод команды в указанный файл журнала |
/ferr:<ErrorLog> | Собирает и перенаправляет вывод всех критических ошибок в указанный файл журнала |
/c | Выполняет всестороннее тестирование, запуская все тесты, кроме DCPromo и RegisterInDNS |
/skip:<test> | При использовании параметра /c позволяет указать тест, который будет пропущен |
/test:<test> | Заставляет утилиту выполнить указанный тест |
/fix | В процессе теста MachineAccount исправляются некорректные основные имена служб (Service Principal Name — SPN), хранящиеся в объекте учетной записи компьютера на контроллере домена |
Чаще всего, утилита запускается с именем конкретного сервера в качестве параметра. Это приведет к выполнению быстрого тестирования Active Directory, которое завершается в течение нескольких секунд, если не обнаружены проблемы.
После этой строки выполняется еще несколько тестов, но и из приведенного фрагмента ясно, как просто с помощью утилиты dcdiag тестировать контроллеры домена и общее состояние Active Directory в пределах леса. Можно воспользоваться параметрами /f и /ferr для перенаправления вывода в файл журнала, что упростит чтение вывода.