Зачем нужно проверять работоспособность Active Directory
Проверка работоспособности контроллеров домена — это важный шаг при возникновении инцидентов, проблем или при внедрении изменений в инфраструктуру Active Directory. Вот основные случаи, когда это особенно актуально:
- Проблемы с Active Directory: если службы работают некорректно, пользователи жалуются на доступ к ресурсам или возникают ошибки синхронизации.
- Сбои в работе контроллеров домена: например, проблемы репликации между серверами, которые могут привести к рассинхронизации данных.
- Перед и после обновления Windows: проверка помогает убедиться, что обновления на контроллере домена прошли успешно и не вызвали сбоев.
- Добавление нового контроллера: после ввода нового сервера в домен важно убедиться, что он правильно интегрировался в существующую структуру.
- Снижение роли контроллера: перед выводом сервера из работы нужно проверить, что все роли и данные успешно переданы другим контроллерам.
Сценарий PowerShell для проверки работоспособности Active Directory
Сценарий PowerShell Get-ADHealth.ps1 — это мощный инструмент для проверки состояния вашей среды Active Directory. Он выполняет комплексную диагностику и предоставляет структурированный отчет с ключевой информацией о каждом контроллере домена.
Что анализирует сценарий:
Основная информация о контроллере домена
- Имя DC.
- Имя сайта AD.
- Версия операционной системы.
- Роли DC, например FSMO.
- DNS-имя.
- Доступность хоста.
- Время работы (Uptime) в часах.
- Свободное место на диске с базой данных AD.
- Свободное место на системном диске.
Состояние служб
- DNS.
- NTDS.
- NetLogon.
Тесты и проверки
- Advertising: проверяет роли и сервисы, опубликованные на DC.
- Replications: диагностика репликации между контроллерами домена и поиск ошибок.
- FSMO KnowsOfRoleHolders: позволяет убедиться, что контроллеры с ролями FSMO доступны.
- FSMO Check: проверка подключения DC к KDC, PDC и глобальному каталогу.
- Services: проверяет, запущены ли на DC все необходимые службы.
Также отображается общее время выполнения скрипта, что позволяет оценить его производительность.
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 выполните следующие шаги:
- Войдите в систему на контроллере домена, используя учетную запись с правами администратора.
- Запустите PowerShell с повышенными привилегиями — от имени администратора.
- Перейдите в каталог со скриптом и выполните
.\Get-ADHealth.ps1 -ReportFile.
PS C:\> cd C:\scripts
PS C:\scripts> .\Get-ADHealth.ps1 -ReportFile
Вот как это выглядит в моем примере.
Скрипт Get-ADHealth.ps1 генерирует отчет в формате HTML, который сохраняется в том же каталоге, где расположен сам скрипт.
В моем примере отчет сохраняется в папке C:\scripts.
Откройте созданный отчет о состоянии Active Directory.
Как видно из отчета, оба контроллера домена — DC01-2019 и DC02-2019 — находятся в доступном состоянии, а все тесты выполнены успешно.
Теперь давайте отключим контроллер домена DC02-2019, снова запустим скрипт и посмотрим, как изменится состояние в отчете.
В отчете о состоянии Active Directory будут отражены сбои в большинстве тестов, что вполне ожидаемо при отключении контроллера домена.
Вот и всё!
Часто задаваемые вопросы
Для чего нужен скрипт Get-ADHealth.ps1?
Скрипт предназначен для проверки состояния Active Directory и контроллеров домена. Он собирает информацию о DC, проверяет службы, репликацию, FSMO и другие важные компоненты инфраструктуры.
Какие службы проверяет Get-ADHealth.ps1?
В рассматриваемой версии скрипта проверяется состояние служб DNS, NTDS и NetLogon.
Как создать HTML-отчет о состоянии Active Directory?
Перейдите в каталог со скриптом и выполните команду .\Get-ADHealth.ps1 -ReportFile. HTML-отчет будет сохранен в каталоге со скриптом.
Можно ли автоматически запускать проверку Active Directory?
Да. Для автоматического запуска Get-ADHealth.ps1 можно создать запланированную задачу в Планировщике заданий Windows.
Можно ли отправлять отчет Active Directory по электронной почте?
Да. В используемой в статье версии Get-ADHealth.ps1 необходимо настроить параметры SMTP в строках 67–73 скрипта, после чего использовать параметр -SendEmail.
Что делать, если PowerShell блокирует Get-ADHealth.ps1?
Если файл был загружен из интернета и заблокирован Windows, его необходимо разблокировать. Это можно сделать через свойства файла или с помощью командлета PowerShell Unblock-File.
Когда полезно проверять состояние Active Directory?
Проверку полезно выполнять при возникновении проблем с AD, перед и после обновлений, при проблемах с репликацией, после добавления нового контроллера домена и перед выводом существующего DC из эксплуатации.
Заключение
Теперь вы знаете, как проверять состояние Active Directory с помощью сценария PowerShell. Скрипт Active Directory Health Check проведет диагностику контроллеров домена и создаст отчет, который станет отличным инструментом для мониторинга и анализа состояния вашей инфраструктуры.
Вам понравилась эта статья? Тогда вам, скорее всего, будет интересна другая полезная статья Как найти все контроллеры домена с помощью PowerShell.