Проверка работы домена windows

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;
  • И т.д.

dcdiag проверка состояния контроллера домена active directory

Полное описание всех доступных тестов есть здесь.

Помимо стандартных тестов, которые выполняются по-умолчанию, можно выполнить дополнительные проверки контроллера домена:

  • 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

dcdiag проверка службы DNS в домене

В результате должна появится сводная таблица по проверкам разрешения имен службой DNS на всех контроллерах (если все ОК, везде должно быть Pass). Если где-то будет указано Fail, нужно выполнить проверку этого теста на указанном DC:

dcdiag.exe /s:DC01 /test:dns /DnsForwarders /v

Чтобы получить расширенную информацию по результатам тестов контроллера домена и сохранить ее в текстовый файл, используйте команду:

dcdiag /s:DC01 /v >> c:\ps\dc01_dcdiag_test.log

расширенная диагностика состояния контроллера домена командой dcdiag

Следующая команда PowerShell позволяет вывести только информацию о выполненных тестах:

Dcdiag /s:DC01 | select-string -pattern '\. (.*) \b(passed|failed)\b test (.*)'

powershell скрипт - вывести информацию о тестах контроллера домена

Чтобы получить состояние всех контроллеров домена, используйте:

dcdiag.exe /s:winitpro.ru /a

Если нужно вывести только найденные ошибки, используйте параметр /q:

dcdiag.exe /s:dc01 /q

dcdiag вывести только ошибки

В моем примере утилита обнаружила ошибки репликации:

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

repadmin /replsum проверка репликации в домене

Утилита вернула текущий статус репликации между всеми DC. В идеальном случае значение largest delta не должно превышать 1 час (зависит от топологии и настроек частоты межсайтовых репликаций), а количество ошибок = 0. В моем примере видно, что одна из последних репликаций заняла 14 дней, но сейчас все OK.

Чтобы выполнить проверку для всех DC в домене:

repadmin /replsum *

Проверку межсайтовой репликции можно выполнить так:

repadmin /showism

Для просмотра топологии репликации и найденных ошибках, выполните:

repadmin /showrepl

Данная команда проверит DC и вернет время последней успешной репликации для каждого раздела каталога (last attempt xxxx was successful).

repadmin /showrepl проверка последней успешной репликации между контроллерами домена

Для вывода расширенной информации, используйте:

repadmin /showrepl *

Для запуска репликации паролей с обычного контроллера домена на контроллер домена на чтение (RODC) используется ключ /rodcpwdrepl.

Опция /replicate позволяет запустить немедленную репликацию указанного раздела каталога на определенный DC.

Для запуска синхронизации указанного DC со всеми партнерами по репликации, используйте команду

replmon /syncall <nameDC>

Для просмотра очереди репликации:

repadmin /queue

В идеальном случае очередь должна быть пуста:

repadmin /queue - очередь репликации

Проверьте время создания последней резервной копии текущего контроллера домена:

Repadmin /showbackup *

Вы также можете проверить состояние репликации с помощью PowerShell. Например, следующая команда выведет все обнаруженные ошибки репликации в таблицу Out-GridView:

Get-ADReplicationPartnerMetadata -Target * -Partition * | Select-Object Server,Partition,Partner,ConsecutiveReplicationFailures,LastReplicationSuccess,LastRepicationResult | Out-GridView

проверка репликации с помощью Get-ADReplicationPartnerMetadata

Можете дополнительно с помощью 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

проверка служб ADDS на контроллере домена

Итак, в этой статье мы рассмотрели базовые команды и скрипты, которые можно использовать для диагностики состояния вашего домена Active Directory. Вы можете использовать их во всех поддерживаемых версия Windows Server, в том числе на контроллерах домена в режиме Server Core.

Время на прочтение8 мин

Количество просмотров179K

Авторское примечание: Статья в первую очередь написана для начинающих системных администраторов, опытные вряд ли почерпнут для себя здесь что-нибудь новое и полезное. Навеяно статьей про GPUPDATE /force (спасибо mrHobbY).

Active Directory – это большой и сложный организм (даже если он состоит и двух контроллеров домена и одного сайта), и для системного администратора очень важно в любой момент времени провести диагностику для анализа работы этого организма.
Ну, а так как по оснасткам ходить и смотреть малоэффективно, по логам системы тоже не всегда поймешь, что происходит, поэтому на помощь приходят различные утилиты. Одна из них – dcdiag от компании Microsoft.
Посмотрим на нее внимательно – ибо полезность данной утилиты трудно переоценить. Я не буду приводить многочисленные ключи данной команды – про них при желании можно и в справке прочитать — а остановлюсь только на тех, – которые использую сам при диагностике на практике.

Первое, что нужно сделать, чтобы работать с этой утилитой – это установить ее к себе на рабочую станцию или на сам сервер (тут каждый волен выбирать сам, но в последних версиях dcdiag – уже в помощи написано, что проверки необходимо запускать на самих серверах — контроллерах домена, за исключением тестов dcPromo и RegisterInDNS). Для Windows 2003 необходимо установить пакет Support Tools c дистрибутива операционной системы, для Windows 7 и 8 – необходимо установить пакет Remote System Administration Tools (они разные для win7, win7sp1, и win8 – будьте внимательны, когда будете скачивать). Кстати, RSAT — сам по себе полезный продукт – внутри много утилит, которые просто необходимы в повседневной жизни администратора домена.
После установки пакета команда уже доступна из командной строки.
Но не торопитесь запускать ее сразу, на рабочей станции ничего не получится без указания контроллера домена, к которому надо подключиться. Утилита выдаст соответствующее предупреждение:

Примечание: начиная с Windows 7 сообщения dcdiag переведены на русский. До этого – все только на английском. Может будет кому полезно. Хотя и в старых версиях очень простой и понятный английский язык.

Замечательно – мы выяснили – что желательно указать контроллер домена с помощью ключа /s: или контекст именования – /n:. Какой сервер указывать понятно – тот контроллер домена, который вы хотите проверить – а вот если указать контекст именования домена – (имя домена другими словами – можно указывать в форматах Netbios, DNS или DN.), то будет найден ближайший (в пределах сайта) контроллер домена (далее КД).
Проведем самую простую проверку: dcdiag /s:dc01-local
И опять беда, хотя кое-что уже видно:

Результат работы

dcdiag /s:dc01-local.local

Диагностика сервера каталогов

Выполнение начальной настройки:
   * Идентифицирован лес AD.
   Сбор начальных данных завершен.

Выполнение обязательных начальных проверок

   Сервер проверки: Local\dc01-local
      Запуск проверки: Connectivity
         ......................... DC01-LOCAL - пройдена проверка Connectivity

Выполнение основных проверок

   Сервер проверки: Local\dc01-local
      Запуск проверки: Advertising
         ......................... DC01-LOCAL - пройдена проверка Advertising
      Запуск проверки: FrsEvent
         Ошибка 5 при открытии File Replication Service журнала событий
         \\DC01-LOCAL:File Replication Service:
          Отказано в доступе.
         ......................... DC01-LOCAL - не пройдена проверка FrsEvent
      Запуск проверки: DFSREvent
         ......................... DC01-LOCAL - пройдена проверка DFSREvent
      Запуск проверки: SysVolCheck
         ......................... DC01-LOCAL - не пройдена проверка SysVolCheck
      Запуск проверки: KccEvent
         Ошибка 5 при открытии Directory Service журнала событий
         \\DC01-LOCAL:Directory Service:
          Отказано в доступе.
         ......................... DC01-LOCAL - не пройдена проверка KccEvent
      Запуск проверки: KnowsOfRoleHolders
         ......................... DC01-LOCAL - пройдена проверка
         KnowsOfRoleHolders
      Запуск проверки: MachineAccount
         ......................... DC01-LOCAL - пройдена проверка MachineAccount
      Запуск проверки: NCSecDesc
         ......................... DC01-LOCAL - пройдена проверка NCSecDesc
      Запуск проверки: NetLogons
         [DC01-LOCAL] В учетных данных пользователя отсутствует разрешение на
         выполнение данной операции.
         Учетная запись, используемая для этой проверки, должна иметь права на
         вход в сеть
         для домена данного компьютера.
         ......................... DC01-LOCAL - не пройдена проверка NetLogons
      Запуск проверки: ObjectsReplicated
         ......................... DC01-LOCAL - пройдена проверка
         ObjectsReplicated
      Запуск проверки: Replications
         [Проверка репликации,DC01-LOCAL] Сбой функции
         DsReplicaGetInfo(PENDING_OPS, NULL), ошибка 0x2105
         "Доступ к репликации отвергнут."
         ......................... DC01-LOCAL - не пройдена проверка Replications
      Запуск проверки: RidManager
         ......................... DC01-LOCAL - пройдена проверка RidManager
      Запуск проверки: Services
         Не удалось открыть диспетчер управления службой в
         dc01-local.local, ошибка 0x5 "Отказано в доступе."
         ......................... DC01-LOCAL - не пройдена проверка Services
      Запуск проверки: SystemLog
         Ошибка 5 при открытии System журнала событий \\DC01-LOCAL:System:
          Отказано в доступе.
         ......................... DC01-LOCAL - не пройдена проверка SystemLog
      Запуск проверки: VerifyReferences
         ......................... DC01-LOCAL - пройдена проверка VerifyReferences


   Выполнение проверок разделов на: Schema
      Запуск проверки: CheckSDRefDom
         ......................... Schema - пройдена проверка CheckSDRefDom
      Запуск проверки: CrossRefValidation
         ......................... Schema - пройдена проверка
         CrossRefValidation

   Выполнение проверок разделов на: Configuration
      Запуск проверки: CheckSDRefDom
         ......................... Configuration - пройдена проверка
         CheckSDRefDom
      Запуск проверки: CrossRefValidation
         ......................... Configuration - пройдена проверка
         CrossRefValidation

   Выполнение проверок разделов на: LOCAL
      Запуск проверки: CheckSDRefDom
         ......................... LOCAL - пройдена проверка CheckSDRefDom
      Запуск проверки: CrossRefValidation
         ......................... LOCAL - пройдена проверка
         CrossRefValidation

   Выполнение проверок предприятия на: LOCAL.local
      Запуск проверки: LocatorCheck
         ......................... LOCAL.local - пройдена
         проверка LocatorCheck
      Запуск проверки: Intersite
         ......................... LOCAL.local - пройдена
         проверка Intersite

Как мы видим, часть тестов пройдена – но части отказано в доступе. Это из-за того, что dcdiag я запускал из-под обычной учетной записи домена, без администраторских прав. Понятно – что часть проверок пройти под ней просто невозможно. Поэтому, что бы получить правильную диагностику, необходимо запускать утилиту с административными полномочиями – либо запустить командную строку от имени администратора, либо использовать ключи /u: имя домена\имя пользователя и /p: пароль. Попробуем:
dcdiag /s:dc01-local /u:local\user19 /p:Password

Результат работы

Диагностика сервера каталогов

Выполнение начальной настройки:
   * Идентифицирован лес AD.
   Сбор начальных данных завершен.

Выполнение обязательных начальных проверок

   Сервер проверки: Magadan\DC01-LOCAL
      Запуск проверки: Connectivity
         ......................... DC01-LOCAL - пройдена проверка Connectivity

Выполнение основных проверок

   Сервер проверки: Magadan\DC01-LOCAL
      Запуск проверки: Advertising
         ......................... DC01-LOCAL - пройдена проверка Advertising
      Запуск проверки: FrsEvent
         ......................... DC01-LOCAL - пройдена проверка FrsEvent
      Запуск проверки: DFSREvent
         ......................... DC01-LOCAL - пройдена проверка DFSREvent
      Запуск проверки: SysVolCheck
         ......................... DC01-LOCAL - пройдена проверка SysVolCheck
      Запуск проверки: KccEvent
         ......................... DC01-LOCAL - пройдена проверка KccEvent
      Запуск проверки: KnowsOfRoleHolders
         ......................... DC01-LOCAL - пройдена проверка
         KnowsOfRoleHolders
      Запуск проверки: MachineAccount
         ......................... DC01-LOCAL - пройдена проверка MachineAccount
      Запуск проверки: NCSecDesc
         ......................... DC01-LOCAL - пройдена проверка NCSecDesc
      Запуск проверки: NetLogons
         ......................... DC01-LOCAL - пройдена проверка NetLogons
      Запуск проверки: ObjectsReplicated
         ......................... DC01-LOCAL - пройдена проверка
         ObjectsReplicated
      Запуск проверки: Replications
         ......................... DC01-LOCAL - пройдена проверка Replications
      Запуск проверки: RidManager
         ......................... DC01-LOCAL - пройдена проверка RidManager
      Запуск проверки: Services
            Недопустимый тип службы: RpcSs на DC01-LOCAL, текущее значение -
            WIN32_OWN_PROCESS, ожидаемое значение - WIN32_SHARE_PROCESS
         ......................... DC01-LOCAL - не пройдена проверка Services
      Запуск проверки: SystemLog
         ......................... DC01-LOCAL - пройдена проверка SystemLog
      Запуск проверки: VerifyReferences
         ......................... DC01-LOCAL - пройдена проверка VerifyReferences


   Выполнение проверок разделов на: Schema
      Запуск проверки: CheckSDRefDom
         ......................... Schema - пройдена проверка CheckSDRefDom
      Запуск проверки: CrossRefValidation
         ......................... Schema - пройдена проверка
         CrossRefValidation

   Выполнение проверок разделов на: Configuration
      Запуск проверки: CheckSDRefDom
         ......................... Configuration - пройдена проверка
         CheckSDRefDom
      Запуск проверки: CrossRefValidation
         ......................... Configuration - пройдена проверка
         CrossRefValidation

   Выполнение проверок разделов на: LOCAL
      Запуск проверки: CheckSDRefDom
         ......................... LOCAL - пройдена проверка CheckSDRefDom
      Запуск проверки: CrossRefValidation
         ......................... LOCAL - пройдена проверка
         CrossRefValidation

   Выполнение проверок предприятия на: LOCAL.Local
      Запуск проверки: LocatorCheck
         ......................... LOCAL.Local - пройдена
         проверка LocatorCheck
      Запуск проверки: Intersite
         ......................... LOCAL.Local - пройдена
         проверка Intersite

ак видим, проверки пройдены почти все – кроме проверки Services. Но тут у меня есть вполне логичное объяснение – я с помощью новой утилиты (из пакета для windows 7) пытаюсь проверять контроллер домена на базе win2003 – и вполне возможно, название службы может отличаться.


Лирическое отступление №1. При подготовке статьи я столкнулся с

epic fail

забавным феноменом, может в комментариях обсудим? :). В общем, запуская dcdiag из-под обычной учетной записи другого домена (связанного доверительными отношениями с исследуемым доменом local) и задавая параметры /u и /p – (имя пользователя и пароль административной учетной записи домена local) – утилита выдавала ошибки в части проверок — например sysvolchek (в версии dcdiag 2003 – frssysvol). Если же на рабочую станцию зайти под учетной записью с административными полномочиями в домене local — проверки прекрасно проходятся. Так что – может быть, все-таки не лишним будет проводить проверку на самом сервере. Конец лирического отступления №1.


Полностью описывать результаты работы команды я не вижу смысла. Это прекрасно описано в помощи к утилите (dcdiag /h). Видно главное – с данным контроллером домена проблем нет и все тесты пройдены. Но из проверки одного сервера – не следует факт, что AD сейчас находится в

шоколаде

работоспособном состоянии. И вот здесь нам на помощь придет ключ для проверки всех серверов предприятия.
Это ключ /e. Данный ключ заставляет утилиту обойти все КД в домене с запуском всех тестов на каждом сервере. Полезно вместе с этим применить /v – вывод расширенной информации по каждому тесту. Ну и чтобы проанализировать все это – полезно данные вывести в файл – причем лог отдельно, сообщения об ошибках – отдельно. Помогут в этом ключи /f: имя_файла_лога и ferr:/имя_файла_лога_ошибок (в новых версиях ключ /ferr убран). Если вы хотите провести проверку не того домена, в котором находитесь сейчас – добавите ключ для указания наименования контекста /n:.

Полностью команда выглядит так:
dcdiag /n:local /e /v /f:c:\logs\adtest.log /ferr:c:\logs\aderrors.log /u:local\user19 /p:Password

Внимание! В версиях dcdiag, начиная с windows 2008 ключ /ferr: убран из поддерживаемых (специально повторился :)).
Если у вас сложная структура леса, да еще и с медленными каналами связи приготовьтесь подождать. Да даже и если несложная – скажем у меня в одном реальном лесе – 10 КД, 5 сайтов и каналы 256 кбит/сек. Выполнение данной команды занимает в среднем до 20 минут.
Результат исполнения очень рекомендуется внимательно просмотреть на наличие проблем. Ну и очень желательно запускать данную утилиту регулярно для диагностики здоровья AD.
Для хардкора можно еще добавить ключ /fix – внесение безопасных исправлений, но бездумно все-таки этого делать не стоит.

Вот собственно и все что я хотел сегодня рассказать. А как часто вам приходится пользоваться данной утилитой на производстве? Какие альтернативы вы знаете?

update 1: Что-то вспомнилось, опять же из личного опыта: если у вас большой домен, связанный небыстрыми (например, спутниковыми) каналами связи — утилита будет выдавать массу ошибок в случае ее отсутствия — чаще всего, что недоступен RPC. Это нормально, и про это надо знать. Если большинство тестов оканчивается подобным сообщением — значит нет связи, необходимо применять меры по устранению сбоя. Вторая часто распространенная проблема — ошибки в DNS — но это тема уже для отдельной статьи.
p.s. к update 1 -dcdiag /fix — в том числе регистрирует по новой записи в dns службы netlogon — это тоже бывает полезно знать!

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

Содержание:

  • Зачем нужно проверять работоспособность Active Directory?
  • Сценарий PowerShell для проверки работоспособности Active Directory
  • Скачайте скрипт PowerShell для проверки работоспособности Active Directory
    • Создание задачи в планировщике задач
    • Настройка ретрансляции SMTP
  • Создание отчета о состоянии Active Directory
  • Заключение

Зачем нужно проверять работоспособность Active Directory?

Проверка работоспособности контроллеров домена — это важный шаг при возникновении инцидентов, проблем или при внедрении изменений в инфраструктуру Active Directory. Вот основные случаи, когда это особенно актуально:

  • Проблемы с Active Directory: Если службы работают некорректно, пользователи жалуются на доступ к ресурсам, или возникают ошибки синхронизации.
  • Сбои в работе контроллеров домена: Например, проблемы репликации между серверами, которые могут привести к рассинхронизации данных.
  • Перед и после обновления Windows: Проверка помогает убедиться, что обновления на контроллере домена прошли успешно и не вызвали сбоев.
  • Добавление нового контроллера: После ввода нового сервера в домен важно убедиться, что он правильно интегрировался в существующую структуру.
  • Снижение роли контроллера: Перед выводом сервера из работы нужно проверить, что все роли и данные успешно переданы другим контроллерам.

Сценарий PowerShell для проверки работоспособности Active Directory

Сценарий PowerShell Get-ADHealth.ps1 — это мощный инструмент для проверки состояния вашей среды Active Directory. Он выполняет комплексную диагностику и предоставляет структурированный отчет с ключевой информацией о каждом контроллере домена.

Что анализирует сценарий:

  1. Основная информация о контроллере домена:
    • Имя DC.
    • Имя сайта AD.
    • Версия операционной системы.
    • Роли DC (например, FSMO).
    • DNS-имя.
    • Доступность хоста.
    • Время работы (Uptime) в часах.
    • Свободное место на диске с базой данных AD.
    • Свободное место на системном диске.
  2. Состояние служб:
    • DNS.
    • NTDS.
    • NetLogon.
  3. Тесты и проверки:
    • Advertising: Проверяет роли и сервисы, опубликованные на DC.
    • Replications: Диагностика репликации между контроллерами домена и поиск ошибок.
    • FSMO KnowsOfRoleHolders: Убедиться, что контроллеры с ролями FSMO доступны.
    • FSMO Check: Проверка подключения DC к KDC, PDC и глобальному каталогу.
    • Services: Проверяет, запущены ли на DC все необходимые службы.
  4. Общее время выполнения скрипта — позволяет оценить его производительность

Get-ADHealth.ps1 — незаменимый инструмент для предотвращения проблем в Active Directory, дающий системному администратору полный контроль над состоянием инфраструктуры.

Скачайте скрипт PowerShell для проверки работоспособности Active Directory

Скачайте скрипт PowerShell Get-ADHealth.ps1 и сохраните его на контроллере домена в папке C:\scripts. Если указанной папки не существует, создайте её вручную.

Чтобы избежать ошибок при запуске, убедитесь, что файл Get-ADHealth.ps1 разблокирован. Если при запуске появляется ошибка, связанная с отсутствием цифровой подписи, обратитесь к статье о способах её устранения: Как исправить ошибку отсутствия цифровой подписи при запуске скрипта PowerShell.

Создание задачи в планировщике задач

Если вы хотите, чтобы сценарий Get-ADHealth.ps1 запускался автоматически и создавал отчет о состоянии Active Directory, настройте его выполнение с помощью запланированной задачи. Для этого ознакомьтесь с инструкцией в статье Как создать запланированную задачу с помощью PowerShell. Настройка позволит автоматизировать проверку состояния AD и получать регулярные отчеты без необходимости ручного запуска.

Настройка ретрансляции SMTP

Если вы хотите, чтобы скрипт Get-ADHealth.ps1 отправлял отчет о состоянии Active Directory по электронной почте, сначала настройте параметры SMTP в строках 67–73 скрипта. Укажите адрес SMTP-сервера, порт, отправителя, получателя и другие необходимые данные. Без этой настройки отправка писем будет недоступна.

Для отправки отчета выполните скрипт с параметром –SendEmail. Это обеспечит автоматическую генерацию и отправку отчета по указанным почтовым параметрам.

Создание отчета о состоянии Active Directory

Для создания отчета о состоянии Active Directory выполните следующие шаги:

  1. Войдите в систему на контроллере домена, используя учетную запись с правами администратора.
  2. Запустите PowerShell с повышенными привилегиями (от имени администратора).
  3. Выполните команду .\Get-ADHealth.ps1 -ReportFile. Это запустит скрипт и создаст отчет с результатами проверки. Убедитесь, что путь к скрипту указан корректно, если он находится не в текущей директории.

PS C:\> cd C:\scripts
PS C:\scripts> .\Get-ADHealth.ps1 -ReportFile

Вот как это выглядит в моём примере.

Проверка работоспособности Active Directory с помощью PowerShell

Скрипт Get-ADHealth.ps1 генерирует отчет в формате HTML, который сохраняется в том же каталоге, где расположен сам скрипт.

В моем примере отчет сохраняется в папке C:\scripts.

Проверка работоспособности Active Directory с помощью PowerShell 02

Откройте отчет о состоянии.

Как видно из отчета, оба контроллера домена — DC01-2019 и DC02-2019 — находятся в доступном состоянии, а все тесты выполнены успешно.

Проверка работоспособности Active Directory с помощью PowerShell 03

Теперь давайте отключим контроллер домена DC02-2019, снова запустим скрипт и посмотрим, как изменится состояние в отчете.

В отчете о состоянии Active Directory будут отражены сбои в большинстве тестов, что вполне ожидаемо при отключении контроллера домена.

Проверка работоспособности Active Directory с помощью PowerShell 04

Вот и все!

Заключение

Теперь вы знаете, как проверять состояние Active Directory с помощью сценария PowerShell. Скрипт Active Directory Health Check проведет диагностику контроллеров домена и создаст отчет, который станет отличным инструментом для мониторинга и анализа состояния вашей инфраструктуры.

Вам понравилась эта статья? Тогда вам, скорее всего, будет интересна другая полезная статья Как найти все контроллеры домена с помощью PowerShell.

Интересуешься IT и системным администрированием? Подпишись на SysAdminHub в телеграмм, чтобы узнавать обо всем первым — t.me/SysAdminHub

Статья была полезна? Поддержи автора, и благодаря твоей помощи новые материалы будут выходить еще чаще:

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

DCDiag – важная утилита для проверки состояния контроллеров домена. Войдите на любой контроллер домена, запустить командную строку и выполните команду:

dcdiag /e /v /q

Это общий тест состояния контроллеров домена и Active Directory. В данном отчете буду указаны только ошибки, которые требует внимание администратора домена.

dcdiag проверка состояния контроллера домена

Затем нужно проверить здоровье 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 тест контроллеров домена

Если в отчете есть ошибки, нужно исправить их вручную. Если вручную исправить ошибки 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, значит в вашем домене нет проблем репликации

проверка состояния репликации в AD repadmin /replsum

Утилиты 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.

w32tm /monitor проверка синхронизации временм в active directory

Проверьте, что на всех контроллерах домена есть расшаренные сетевые папки SYSVOL и Netlogon. Эти папки нужны для применения и репликации групповых политик (объектов GPO).

Список общих папок на DC можно вывести командой:

net share

каталоги SYSVOL и Netlogon на контоллере домена

Теперь проверьте корректность работы Netlogons в Active Directory:

dcdiag /test:netlogons

Если с Netlogon все в порядке для всех тестов должно быть указано passed test.

dcdiag /test:netlogons

Осталось проверить на любом компьютере домена, что к нему применятся все назначенные политики. Для этого используется команда:

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 предоставляют удобные инструменты для диагностики и исправления ошибок в домене, что позволяет поддерживать стабильность сети.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Ошибка центра обновления windows 0x80070424 как устранить проблему
  • Диспетчер загрузки windows диагностика памяти
  • Чем открыть формат rar в windows
  • Как восстановить переписку в whatsapp на windows
  • Как ввести компьютер в домен windows server