Базовое устранение неполадок репликации Active Directory с помощью PowerShell

Опубликовано: 15 Марта, 2023
Базовое устранение неполадок репликации Active Directory с помощью PowerShell

Почти все роли и функции, поставляемые с Windows, содержат модули PowerShell. Active Directory PowerShell предоставляет необходимые модули для управления Active Directory и ее компонентами, включая репликацию Active Directory. Используя модули репликации Active Directory, вы можете вносить изменения в объекты подключения репликации, а также устранять неполадки репликации Active Directory. В этой статье представлена основная информация о том, как устранять неполадки репликации Active Directory с помощью командлетов PowerShell.

Начиная с Windows Server 2012, Microsoft предоставляет новые командлеты PowerShell репликации Active Directory, которые можно использовать для устранения неполадок репликации Active Directory. В более ранних версиях Windows вам приходилось использовать утилиту командной строки Repadmin для устранения проблем с репликацией, поскольку в более ранних версиях Windows не было командлетов PowerShell для репликации Active Directory. Существует пять основных командлетов PowerShell для устранения неполадок репликации Active Directory; Get-ADReplicationFailure, Get-ADReplicationAttributeMetadata, Get-ADReplicationPartnerMetadata, Get-ADReplicationQueueOperation и Get-ADReplicationUpToDatenessVectorTable. Давайте рассмотрим несколько примеров использования этих командлетов PowerShell.

Проверка состояния репликации Active Directory по всему лесу

Вы можете использовать простую команду PowerShell для проверки состояния репликации в лесу Active Directory. Выполнив Get-ADReplicationPartnerMetadata и указав некоторые параметры, вы увидите полное представление репликации, как показано в приведенной ниже команде:

Get-ADReplicationPartnerMetadata –Target * -Scope Server | Where {$_.LastReplicationResult –ne “0”} | FT Server, LastReplicationAttempt, LastReplicationResult, Partner, Site

Как вы можете видеть в приведенной выше команде, мы указываем «*» для параметра «-Target», а логическое условие ($_.LastReplicationResult –ne «0») установлено для возврата только контроллеров домена с ошибками репликации. В выходных данных отображается имя контроллера домена, время последней попытки репликации, значение LastReplicationResult, партнер контроллера домена, с которым произошел сбой репликации, и имя сайта контроллера домена.

Проверка контроллеров домена на наличие сбоев репликации

Как следует из названия, командлет Get-ADReplicationFailure позволяет быстро узнать, есть ли какие-либо ошибки репликации в контроллере домена Active Directory. Например, выполнив приведенную ниже команду, вы проверяете наличие сбоев репликации на конкретном контроллере домена:

Get-ADReplicationFailure TGDC1.TechGenix.com

Приведенная выше команда PowerShell при выполнении показывает все ошибки репликации на контроллере домена TGDC1.TechGenix.com, в том числе показывает количество сбоев, последнюю ошибку и партнеров репликации, с которыми произошла ошибка репликации. Вы также можете определить область проверки репликации, указав параметр –Scope, как показано в приведенной ниже команде:

Get-ADReplicationFailure –Scope SITE –Target Seattle | Format-Table Server, FirstFailureTime, FailureCount, LastError, Partner –AUTO

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

Get-ADReplicationFailure –Scope SITE –Target Seattle | Format-Table Server, FirstFailureTime, FailureCount, LastError, Partner –AUTO | Export-CSV C:TempReplStatusSeattleSite.CSV

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

Если вы устраняете проблемы с репликацией на конкретном контроллере домена, вы можете использовать Get-ADReplicationPartnerMetadata, который, в свою очередь, отображает метаданные о репликации на этом контроллере домена, включая отображение LastChangeUSN, дату и время последней попытки репликации и последняя дата и время успешной репликации с партнерами по репликации. Выполнив приведенную ниже команду, вы увидите информацию о метаданных для контроллера домена TGDC1.TechGenix.com.

Get-ADReplicationPartnerMetadata –Target TGDC1.TechGenix.com

Проверка USN контроллера домена

При устранении неполадок репликации необходимо проверить порядковый номер обновления (USN) на каждом контроллере домена, чтобы проверить актуальность репликации с контроллерами партнерского домена. Например, когда вы изменяете объект в локальном контроллере домена, USN для этого объекта увеличивается на единицу. Тот же USN должен быть реплицирован с партнерским контроллером домена. Допустим, вы хотите увидеть наивысший номер USN для раздела домена (TechGenix.Local) на двух контроллерах домена, чтобы убедиться, что два контроллера домена имеют обновленную копию раздела домена.

Get-ADReplicationUpToDatenessVectorTable – Целевой TGDC1 – Scope Server Get-ADReplicationUpToDatenessVectorTable – Целевой TGDC2 – Scope Server

Выполняя приведенные выше команды, вы собираетесь перечислить номер USN для раздела домена на TGDC1 и TGDC2, и номер USN должен совпадать, чтобы гарантировать, что оба контроллера домена содержат правильную копию раздела домена.

Если определенный контроллер домена не может отправлять и получать изменения репликации в течение довольно длительного времени, ваша первая задача — убедиться, что на контроллере домена нет ожидающих операций репликации, выполнив следующую команду:

Get-ADReplicationQueueOperation –Target TGDC1.TechGenix.com

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

Если вам нужно проверить статус репликации для определенной Active Directory, например учетной записи пользователя, вы можете использовать командлет PowerShell Get-ADReplicationAttributeMetadata, как показано в приведенной ниже команде:

Get-ADReplicationAttributeMetadata –Object “CN=TestUser1, CN=Users, DC=TechGenix, DC=Local” –ShowAllLinkedValues

Устранение неполадок репликации Active Directory стало проще

С помощью этих полезных команд PowerShell вы можете значительно упростить иногда трудоемкий процесс устранения неполадок репликации Active Directory. А с помощью Get-ADReplicationUpToDatenessVectorTable вы можете проверить, есть ли у двух или более контроллеров домена обновленная копия раздела домена.