DOC / 1467 SysAdminHub.ru

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

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

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

  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

Откройте созданный отчет о состоянии Active Directory.

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

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

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

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

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

Вот и всё!

Часто задаваемые вопросы

Для чего нужен скрипт 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.

ORIGINAL / ATTRIBUTION

Источник материала

Материал взят с https://sysadminhub.ru/. Оригинальная статья и авторство указаны по ссылке ниже.

Оригинал статьи на SysAdminHub.ru ↗

https://sysadminhub.ru/produkty-microsoft/windows-server/active-directory-health-check-powershell-script

Материал проверен 10.10.2026. При изменении программного обеспечения сверяйтесь с актуальной документацией.
← Вернуться в базу знаний