Більшість адміністраторів AD для контролю репликацией в Active Directory використовують консольні утиліти repadmin (З'явилася ще в Windows Server 2003) і replmon (Потрібно копіювати з Support Tool для WS2003). Microsoft в Windows Server 2012 додала ряд командлетів PowerShell, які можна використовувати для управління і перевірки статусу реплікації у лісі Active Directory. У цій статті ми розглянемо основні корисні командлети PoSh, які може використовувати адміністратор AD для контролю за своєю інфраструктурою.
Командлети для управління і моніторингу реплікації AD входять до складу модуля Active Directory для PowerShell. Його можна включити після установки RSAT. Для імпорту модуля в сесію PowerShell потрібно виконати команду:
Import-Module ActiveDirectory
Повний список командлетів, пов'язаних з реплікацією, в модулі activedirectory можна вивести так:
get-command -module activedirectory -name * ADReplicat *
Для збору інформації про помилки редуплікаціі на конкретному контролері домену, потрібно використовувати команддет Get-ADReplicationFailure:
Get-ADReplicationFailure -Target DC01
У тому випадку, якщо помилок немає, командлет нічого не поверне, в іншому випадку ви побачите список збійних об'єктів і причини помилок реплікації.
Можна опитати відразу кілька DC:
Get-ADReplicationFailure -Target DC01, DC02
В даному випадку видно, що 22 лютого була проблема зв'язку з контролером домену dc02 (link failure), але на даний момент помилка не спостерігається.
Для швидкого отримання статусу реплікації для всіх DC в зазначеному сайті:
Get-ADReplicationFailure -scope site -target Kursk | FT Server, LastError, Partner-Auto
Або відразу все контролери домену в домені або лісі (-Scope Forest
):
Get-ADReplicationFailure -Target "winitpro.ru" -Scope Domain
командлет Get-ADReplicationConnection використовується для виведення інформацію про партнерах реплікації для поточного контролера домену.
Get-ADReplicationConnection -Filter *
Якщо потрібно вивести підключення реплікації з конкретним DC, виконайте команду:
Get-ADReplicationConnection -Filter ReplicateToDirectoryServer -eq "DC02"
Для запуску примусової синхронізації конкретного об'єкта між контролерами домену, використовується командлет Sync-ADObject. Наприклад, візьмемо ситуацію, коли якийсь об'єкт AD видалений, поміщений в кошик AD і згодом відновлений. Відразу після відновлення об'єкта можна виконати примусову реплікацію відновленого об'єкта на всі контролери домену (список DC можна отримати Командлети Get-ADDomainController) за допомогою командлета Sync-ADObject:
Get-ADDomainController -filter * | foreach Sync-ADObject -Object "cn = Andrey Petrov, cn = Users, dc = winitpro, dc = ru" -source DC01 -Destination $ _. hostname
командлет Get-ADReplicationPartnerMetadata дозволяє отримати інформацію про метаданих реплікації між DC та партнерами. Наприклад, для отримання з усіх DC інформації про час останньої спроби виконати реплікацію з партнером і часу останньої успішної реплікації, наберіть:
Get-ADReplicationPartnerMetadata -Target "$ env: userdnsdomain" -Scope Domain | Select-Object Server, LastReplicationAttempt, LastReplicationSuccess, Partner
Можна отримати статус реплікації конкретного об'єкта:
Get-ADReplicationAttributeMetadata -Object "CN = Maxim Vetrov, OU = Users, DC = winitpro, DC = ru" -Server DC01
За допомогою командлета Get-ADReplicationQueueOperation можна отримати список очікують операцій реплікації на конкретному сервері.
командлет Get-ADReplicationUpToDatenessVectorTable дозволяє отримати список значень USN для партнерів по реплікації:
Get-ADReplicationUpToDatenessVectorTable * | ft Partner, Server, UsnFilter
Таким чином, PowerShell надає потужний і зручний інструмент для моніторингу і вирішення проблем з реплікацією в лісі AD, який на 100% може замінити функціонал утиліти repadmin з моніторингу та управління реплікацією в Active Directory.