Утилита 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 для перенаправления вывода в файл журнала, что упростит чтение вывода.