Сбор информации о контроллерах домена с помощью PowerShell

Опубликовано: 2 Марта, 2023
Сбор информации о контроллерах домена с помощью PowerShell

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

Командлеты PowerShell для использования

Хотя вы можете использовать традиционные способы, такие как инструмент командной строки DSQuery Server или классы WMI, для запроса информации о контроллерах домена, модули Active Directory PowerShell предоставляют командлет PowerShell, который мы можем использовать для получения всей информации о контроллерах домена в Active Directory. Лес каталогов, а также все внешние леса Active Directory. Мы можем использовать командлет PowerShell Get-ADDomainController, который объясняется в рамках этой статьи.

Проверка того, какие контроллеры домена являются серверами глобального каталога

Если вам нужно проверить, являются ли определенные или все контроллеры домена в лесу Active Directory серверами глобального каталога, вы можете использовать Get-ADDomainController с помощью следующей команды:

$DCStatus = Get-ADDomainController-Identity DC1.TechGenix.com $DCStatus.IsGlobalCatalog

Приведенная выше команда возвращает состояние глобального каталога для контроллера домена с именем DC1.TechGenix.com. Как видите, очень легко узнать, является ли конкретный контроллер домена сервером глобального каталога или нет. Если вы хотите проверить состояние глобального каталога для всех контроллеров домена, вы можете выполнить следующие команды PowerShell:

$DCList = "C:TempDCList.TXT" ForEach ($Item в GC $DCList) { $DCStatus = Get-ADDomainController -Identity $Item $DCStatus.IsGlobalCatalog}

Приведенные выше команды PowerShell необходимо выполнить после создания файла DCList.TXT, содержащего список проверяемых контроллеров домена. Есть еще один способ получить список контроллеров домена, а затем проверить состояние глобального каталога. Вы можете использовать параметр «-Filter» в командлете Get-ADDomainController, как показано в команде ниже:

$DCStatus = Get-ADDomainController-Filter * $DCStatus.IsGlobalCatalog

Как видите, мы использовали параметр «-Filter *» в приведенных выше командах PowerShell, чтобы получить все контроллеры домена, сохранить информацию обо всех контроллерах домена в переменной $DCStatus, а затем с помощью свойства IsGlobalCatalog мы запрашиваем состояние глобального каталога. Однако одна из проблем с приведенными выше командами заключается в том, что они не отображают имя контроллера домена. Чтобы перечислить имя контроллера домена вместе со статусом глобального каталога, вы можете использовать этот сценарий PowerShell:

$DCStatus = Get-ADDomainController -Filter * ForEach ($Item в $DCStatus) { $STR = $DCStatus.HostName+ ": "+$DCStatus.IsGlobalCatalog Write-host $STR }

Контроллеры домена на данном сайте Active Directory

Если вы хотите узнать, сколько контроллеров домена существует на сайте Active Directory, вы можете использовать командлет PowerShell Get-ADDomainController. Get-ADDomainController реализует свойство «сайт» для каждого объекта контроллера домена. Вы можете легко увидеть, с каким сайтом Active Directory связан конкретный контроллер домена. Чтобы проверить имя сайта Active Directory для одного контроллера домена, выполните следующие команды PowerShell:

$DCStatus = Get-ADDomainController -Identity TechGenix.com $DCStatus.Site Хотя приведенные выше команды PowerShell показывают имя сайта одного контроллера домена Active Directory, приведенный ниже сценарий PowerShell можно использовать для просмотра имени сайта Active Directory для всех контроллеров домена в лес Active Directory: $DCStatus = Get-ADDomainController -Filter * ForEach ($Item в $DCStatus) { $STR = $DCStatus.HostName+ ": "+$DCStatus.Site Write-host $STR }

Если вам нужно сохранить вывод в файл CSV, просто добавьте команду «Export-CSV <Путь к файлу CSV>» в приведенном выше сценарии PowerShell.

Проверьте операционную систему контроллеров домена

Ручная проверка версии операционной системы контроллеров домена в большой среде — трудоемкая задача, поскольку она требует проверки некоторых атрибутов каждого объекта контроллера домена с помощью оснастки «Пользователи и компьютеры Active Directory». Что вы можете сделать, так это использовать командлет Get-ADDomainController и проверить два атрибута, в которых хранится информация о версии операционной системы. Это свойства OperatingSystem и OperatingSystemVersion. Чтобы проверить версию операционной системы одного контроллера домена, вы можете ввести следующую команду PowerShell:

$DCStatus = Get-ADDomainController -Identity Ossisto365.com $DCStatus.OperatingSystem $DCStatus.OperatingSystemVersion

Чтобы проверить версию операционной системы нескольких контроллеров домена, сработает приведенный ниже сценарий PowerShell.

$DCStatus = Get-ADDomainController-Filter * ForEach ($Item в $DCStatus) { $STR = $DCStatus. Операционная система + ": "+$DCStatus. Узел записи OperatingSystemVersion $STR }

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