DCDiag: Как проверить здоровье контроллера домена с помощью Powershell

DCDiag: Как проверить состояние контроллера домена с помощью Powershell. DCDiag – это мощный инструмент командной строки, используемый для диагностики проблем с контроллерами домена в среде Microsoft Windows Active Directory. Мы используем его для проверки состояния здоровья контроллеров домена, выявления ошибок или несоответствий, а также устранения проблем с репликацией. DCDiag также помогает администраторам обнаруживать и решать проблемы с конфигурацией DNS, репликацией SYSVOL и другими критическими службами, необходимыми для корректной работы Active Directory.

Мы рассматриваем DCDiag, мощный инструмент Microsoft Windows. Мы используем его для тестирования служб DNS, оценки состояния контроллеров домена и даже автоматического исправления ошибок. Хотя инструмент относительно прост, он достаточно мощный, чтобы поддерживать состояние здоровья всех наших контроллеров домена.Начнем со статьи DCDiag: Как проверить состояние контроллера домена с помощью PowershellТакже читайте Как добавить контроллер домена в существующий домен

Давайте начнем с статьи DCDiag: Как проверить работоспособность контроллера домена с помощью Powershell

DCDiag: Как проверить работоспособность контроллера домена с помощью Powershell

Установка инструмента DCDiag

Если мы запускаем Windows Server, у нас должен быть установлен DCDiag. Microsoft встроила DCDiag в современные версии Windows Server, начиная с 2012R2 и более поздних версий.

Цель инструмента DCDiag

Цель DCDiag заключается в диагностике и устранении неполадок с доменными контроллерами в Windows Server среда. Это командная строка инструмент, который выполняет широкий спектр проверок на домен контроллер, включая тесты на DNS, репликации, LDAP, безопасность анализируя один или несколько контроллеров домена одновременно в нашем лесу AD или предприятии. Давайте рассмотрим некоторые из различных тестов, которые DCDiag выполняет на контроллере домена:

  1. тесты подключения – DCDiag проверяет, подключен ли контроллер домена к сети и может ли он общаться с другими контроллерами домена.
  2. Тесты DNS – проверяет, правильно ли резолвит и регистрирует DNS доменный контроллер.
  3. Тесты репликации– проверяет, корректно ли доменный контроллер реплицируется с другими доменными контроллерами.
  4. Тесты доверия – DCDiag проверяет, доверяет ли доменный контроллер другим доменам и доверяют ли другие домены доменному контроллеру.
  5. Тесты LDAP– проверяет, работают ли запросы LDAP корректно на доменном контроллере.
  6. Тесты Kerberos – DCDiag проверяет, работает ли аутентификация Kerberos корректно на доменном контроллере.
  7. SYSVOL тесты – DCDiag проверяет, работает ли репликация SYSVOL корректно на контроллере домена.
  8. Тесты глобального каталога – DCDiag проверяет, выступает ли DC в качестве сервера глобального каталога и работают ли запросы глобального каталога корректно.

Обзор инструмента DCDiag

Ну, с использованием утилиты DCDiag: Как проверить работоспособность контроллера домена с помощью Powershell – это простой инструмент командной строки. Мы запускаем DCDiag в командной строке или в окне PowerShell. Не забудьте использовать привилегии администратора.

Базовая синтаксис DCDiag выглядит следующим образом:

dcdiag.exe /s:[:] [/u:\ /p:*||””]

В которой:

  • /s – Контроллер домена
  • /u:\ – Имя пользователя
  • \p:* – Пароль

Эта базовая командная строка возвращает результаты тестов, показывающие основной (подключение) тест и любые указанные тесты на контроллере домена.Чтобы узнать, как использовать команду DCDiagкоманду вместе со всеми ее переключателями, давайте начнем с команды помощи:

dcdiag /?

Переключатели параметров DCDiag

Для использования любого из следующих переключателей добавьте его после команды DCDiag. Сводка популярных переключателей команд:

  1. /s <ServerName> – Указывает имя сервера для тестирования. Если имя сервера не указано, DCDiag тестирует локальный компьютер.
  2. /v – Предоставляет подробный вывод и дополнительную информацию о проведенных тестах.
  3. /test:<TestName> – Указывает имя теста для выполнения. Мы запускаем несколько тестов, указав несколько переключателей /test.
  4. /e – Выполняет комплексный набор тестов на указанном доменном контроллере.
  5. /fix – Пытается исправить обнаруженные проблемы во время тестов.
  6. /f:<LogFileName> – Указывает имя журнала файла для создания.
  7. /c – Указывает, что DCDiag должен выполнять только тесты, необходимые для рекламирования услуг доменного контроллера.
  8. /skip:<TestName> – Пропускает указанный тест.
  9. /l:<LogFileName> – Указывает имя файла журнала, к которому нужно добавлять, а не перезаписывать.
  10. /q – Устанавливает режим тишины, который подавляет отображение информационных сообщений.
  11. /test:DNS – Запускает тесты DNS на указанном контроллере домена.
  12. /test:KCC – Запускает тесты KCC на указанном контроллере домена.
  13. /test:Replications – Запускает тесты репликации на указанном контроллере домена.
  14. /test:Advertising – Запускает тесты рекламы на указанном контроллере домена.
  15. /test:Services – Запускает тесты сервисов на указанном контроллере домена.

Выше представлены некоторые из наиболее часто используемых переключателей командной строки DCDiag, но доступно гораздо больше вариантов. Мы можем увидеть полный список переключателей и их определений, запустив команду help выше.

Попробуйте нашу утилиту отчетов о здоровье Active Directory DC

Попробуйте нас бесплатно, доступ ко всем функциям. – Более 200 шаблонов отчетов AD доступны. Легко настраивайте свои собственные отчеты AD.




Запуск DCDiag и сценарии использования

Чтобы запустить DCDiag, введите команду DCDiag без каких-либо переключателей для выполнения базового теста DCDiag на локальном контроллере домена (или аргумента).

dcdiag.exe

Поскольку DCDiag автоматически определяет текущий (локальный) контроллер домена, ни контроллер домена, ни административные учетные данные не требуются. В следующем разделе мы обсуждаем несколько сценариев использования с помощью параметров переключателей DCDiag.

Проверка работоспособности удаленных контроллеров домена

Мы должны добавить переключатель /s: в конец имени контроллера домена и его учетных данных для запуска диагностики на удаленном контроллере домена (имя пользователя и пароль). Например:

dcdiag.exe /s:dc01 /u:dc01\Administrator /p:password

DCPromo и Register in DNS, которые выполняются локально и не предназначены для контроллера домена, не будут затронуты переключателем /s.

Обратите внимание, что при вводе информации /u (имя пользователя) мы должны указать имя учетной записи с правами администратора домена и использовать правильный формат: домен/имя пользователя. Таким образом, например, мы добавляем имя пользователя (Администратор) с именем домена (dc01): /u:dc01\Administrator.

Проверка состояния здоровья для всех контроллеров домена

Мы соединяем каждый сайт AD, который может содержать набор DC, друг с другом. Переключатель /a полезен, если мы разделим AD на сайты. Это позволяет нам одновременно запустить утилиту DCDiag для всех DC сайтов:

dcdiag.exe /s:dc01 /a

Использование DCDiag для тестирования DNS

Независимо от того, что мы тестируем, инструмент DCDiag всегда проверяет регистрацию DNS каждого контроллера домена во время основного теста подключения по умолчанию. Кроме того, мы можем проводить конкретные тесты DNS, такие как прокси, регистрация записей и другие, которые помогают исследовать проблемы с DNS. Для тестирования DNS используйте следующую команду:

dcdiag.exe /s:dc01 /test:dns

Следующие основные тесты выполняются по умолчанию, за исключением внешнего разрешения имен. Все результаты DNS отображают тест DNSBasic. Если значение отсутствует, переключатель /test:dns автоматически по умолчанию устанавливается на /DNSall. Вот некоторые тесты DNS, которые мы называем при использовании инструмента DCDiag:

  1. /DNSBasic – Проверяет, настроен ли DNS-сервер контроллера домена корректно и разрешает имена.
  2. /DnsDelegation– Тестирует, настроены ли делегирования DNS корректно для контроллера домена.
  3. /DnsForwarders – Проверяет, настроены ли DNS прокси корректно для контроллера домена.
  4. /DnsDynamicUpdate – Проверяет, выполняет ли контроллер домена динамические обновления DNS.
  5. /DnsRecordRegistration – Тестирует, актуальна ли регистрация DNS контроллера домена и точна.

Эти тесты обеспечивают правильную и корректную работу конфигурации DNS контроллера домена. Если DCDiag обнаружит какие-либо проблемы во время этих тестов, DCDiag быстро их устраняет, чтобы избежать потенциальных проблем с Active Directory и другими сетевыми службами. Тест DNS должен выглядеть следующим образом:

Настройка результатов DCDiag

DCDiag позволяет нам настраивать результаты, показывая нам меньше или больше информации. Также можно экспортировать результаты для последующего анализа. Вот несколько примеров того, как мы настраиваем отчеты DCDiag отчетность.

Запуск DCDiag в режиме тихой работы

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

dcdiag.exe /s:dc01 /q

Вывод с /q отфильтрован только для ошибок и выглядит следующим образом:

Запустите DCDiag с подробным выводом

Добавив флаг /v для подробного вывода, запустите DCDiag с подробным выводом. Это предоставляет нам больше информации о наших ежедневных задачах, таких как ошибки, предупреждения, информационные сообщения и т.д. Переключатель /v является противоположностью переключателя тихого режима /q.

Как уже отмечалось, DCDiag (без /v) предоставляет достаточно подробную информацию для определения и устранения любых проблем с нашим контроллером домена, что может быть достаточным в большинстве случаев. Вот пример фрагмента с переключателем подробного вывода: 

dcdiag.exe /s:dc01 /v

Вывод с переключателем /v должен выглядеть следующим образом:

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

Экспорт результатов DCDiag

Утилита DCDiag позволяет нам экспортировать результаты проверки работоспособности. Например, мы сохраняем все результаты тестов в текстовый файл, добавив переключатель /f к команде DCDiag. Например:

dcdiag.exe /s:dc01 f:c:\dcdiag_dc01_test01.txt

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

Мы также экспортируем результаты в XLSX или XML. Однако эта функция работает только для переключателя /test:dns:

dcdiag.exe /test:dns /x or, /test:dns/x:

DCDiag является исключительно диагностическим инструментом. Поэтому он выполняет различные тесты и предоставляет только свои результаты. Однако переключатель /fix – это отличный переключатель, который пытается безопасно исправить указанные проблемы.

dcdiag.exe /s:dc01 /fix

Нам не нужно предоставлять дополнительные параметры или характеристики при использовании переключателя /fix. Для теста MachineAccount работает только переключатель /f. Он исправляет объект MachineAccount контроллера домена в Service Principal Names (SPNs).

Примечание: Несмотря на то, что DCDiag разработан с использованием переключателя (fix) для обеспечения безопасных автоматических исправлений, он все равно изменяет контроллер домена. В связи с этим, перед использованием переключателя /f, всегда изучайте результаты тестов, и всегда создавайте резервную копию вашего контроллера домена.

Использование DCDiag с PowerShell

В Windows PowerShell нет аналога команды DCDiag. Однако, мы можем использовать DCDiag в PowerShell, запуская команду dcdiag.exe с соответствующими параметрами с помощью командлетов Invoke-Expression или Invoke-Command. Вот пример использования DCDiag в PowerShell для запуска DNS-тестов:

Invoke-Expression "dcdiag.exe /test:DNS /v"

В этом примере мы использовали командлет Invoke-Expression, чтобы запустить команду dcdiag.exe с параметром /test:DNS для выполнения DNS-тестов и параметром /v для вывода подробной информации. Конечно, мы можем заменить /test:DNS на любой другой тест DCDiag, который мы хотим выполнить. В качестве альтернативы, мы можем использовать командлет Invoke-Command для выполнения DCDiag на удаленном компьютере.

Вот еще один пример:

Invoke-Command -ComputerName "ServerName" -ScriptBlock { dcdiag.exe /test:DNS /v }

В предыдущем примере мы использовали параметр -ScriptBlock с командой Invoke-Command, чтобы указать код, который мы хотели запустить на удаленном компьютере. Параметр -ScriptBlock принимает блок сценария, который по сути является блоком кода, заключенным в фигурные скобки {}.

Когда мы используем команду Invoke-Command с параметром -ScriptBlock, мы выполняем блок сценария на удаленном компьютере, указанном с параметром -ComputerName, и блок сценария возвращает результат на локальный компьютер. Использование параметра -ScriptBlock с командой Invoke-Command является мощным способом выполнения команд или сценариев на удаленных компьютерах. Это помогает управлять большим количеством компьютеров в сетевой среде, подобно тому, как мы использовали инструмент DCDiag.

Благодарим вас за прочтение статьи “DCDiag: Как проверить состояние контроллера домена с помощью PowerShell”. Мы закончим статью сейчас.

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

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

Source:
https://infrasos.com/dcdiag-how-to-check-domain-controller-health-using-powershell/