Управление репликацией и топологией Active Directory с помощью Windows PowerShell


Сравнительно недавно нам подарили весьма неплохую утилиту, такую как Active Directory Replication Status Tool. Утилита довольно мощная, умеет разное и хорошо помогает в трудных ситуациях. Настоящие индейцы, конечно еще хорошо помнят replmon, выпиленный в Windows Server 2008, (тем не менее, можно брать его из ресурс кита и невозбранно пользоваться) а также sonar, не раз выручавший администраторов с капризной FRS и кошерный ключик replsum в repadmin, о котором часто забывают.
Но это все в прошлом, теперь же можно очень просто автоматизировать сбор информации, и автоматизировать типовые задачи администрирования. И поможет нам в этом Powershell. Посмотрим поближе на команды для управления Active Directory Replication: (старый разбор полетов скромного модуля репликации для 2008R2 тут)

Get-ADReplicationSite -filter *

При этом возвращаются подробные сведения о каждом сайте. Параметр Filter, используемый в командлетах AD PowerShell, ограничивает список возвращаемых объектов. В этом случае звездочка (*) означает все объекты сайта.

Get-ADDomainController -filter * | ft Hostname,Site

Эта команда возвращает имя узла контроллеров домена, а также их связи с сайтами.

New-ADReplicationSite TVER

С помощью этой команды создается новый сайт филиала tver.

New-ADReplicationSiteLink 'CORP-TVER' -SitesIncluded CORP,TVER -OtherAttributes @{'options'=1}

С помощью этой команды создана связь сайтов в TVER и включен процесс уведомления об изменениях.

Set-ADReplicationSiteLink CORPORATE-TVER -Cost 100 -ReplicationFrequencyInMinutes 15

С помощью этой команды устанавливается стоимость связи сайта TVER в 100, а частота репликации с сайтом — 15 минут.

Get-ADDomainController DC2 | Move-ADDirectoryServer -Site TVER

С помощью этой команды контроллер домена DC2 перемещается на сайт TVER.

Get-ADReplicationUpToDatenessVectorTable DC1 

покажет нам векторную таблицу синхронизации для одного контроллера домена, при этом появится список наивысших номеров последовательного обновления, отображаемый сервером DC1 для каждого контроллера домена в лесу. Значение Сервер обозначает сервер, поддерживающий таблицу, в данном случае DC1. Значение Партнер обозначает партнера репликации (прямого или непрямого), на котором были сделаны изменения. Значение UsnFilter является наивысшим номером последовательного обновления, который отображается сервером DC1 от партнера. Если в лес добавлен контроллер домена, он не появится в таблице сервера DC1, пока сервер DC1 не получит изменение, исходящее от нового домена.

Для всех контроллеров подойдет команда

Get-ADReplicationUpToDatenessVectorTable * | sort Partner,Server | ft Partner,Server,UsnFilter

Сортировка позволяет легко сравнить последний номер последовательного обновления (USN), отображаемый на каждом контроллере домена для данного партнера репликации. Это быстрый способ убедиться, что репликация проходит во всей среде. Если репликация работает правильно, то значения параметра UsnFilter, указанные в отчете для данного партнера репликации, должны быть похожи на всех контроллерах домена.

Get-ADReplicationAttributeMetadata "CN=domain admins,CN=users ,DC=corp,DC=contoso,DC=com" corp-DC01 -ShowAllLinkedValues

Получение метаданных репликации для атрибутов группы с отличительным именем «CN=domain admins,CN=users,DC=corp,DC=contoso,DC=com» от домена CORP-DC01.

Если присутствует многозначный атрибут, извлекаются все его связанные значения.

Get-ADReplicationAttributeMetadata "1A7BFEC6-C92C-4804-94B0-D407E51F1B64" corp-DC01 -IncludeDeletedObjects

Получение метаданных репликации для атрибутов объекта с идентификатором GUID «1A7BFEC6-C92C-4804-94B0-D407E51F1B64», включая удаленные объекты и деактивированные прямые и обратные ссылки.

Get-ADObject -Filter 'objectclass -eq "group"' | Get-ADReplicationAttributeMetadata -server corp-DC01 | where-object {$_.lastoriginatingchangetime -like "*11/10/2011*"} | format-table object

Просмотр всех групп, атрибуты которых были изменены 11.10.2011.

Sync-ADObject "CN=AccountManagers,OU=AccountDeptOU,DC=corp,DC=contoso,DC=com" corp-DC01 corp-DC02

Репликация объекта с отличительным именем «CN=AccountManagers,OU=AccountDeptOU,DC=corp,DC=contoso,DC=com» в интервале от corp-DC01 до corp-DC02.

Get-ADUser e.tarasov | Sync-ADObject -Destination "corp-RODC01" -PasswordOnly

Предварительная запись пароля Евгения Тарасова в кэш доступного только для чтения контроллера домена corp-RODC01 с помощью параметра пользователя SamAccountName.

Get-ADReplicationPartnerMetadata -Target corp-DC01 -PartnerType Inbound

Получение метаданных репликации между доменом corp-DC01 и его входящими партнерами только для раздела по умолчанию (см. выше).

Get-ADReplicationPartnerMetadata -Target corp-DC01,corp-DC02 -PartnerType Both –Partition Schema

Получение метаданных репликации только между доменами corp-DC01, corp-DC02 и соответствующими партнерами (как входящими, так и исходящими) для раздела схемы.

Get-ADReplicationPartnerMetadata -Target NorthAmerica -Scope Site –Partition *

Получение метаданных репликации по всем входящим партнерам всех контроллеров домена на сайте NorthAmerica для всех разделов, размещенных на этих контроллерах домена.

Get-ADReplicationPartnerMetadata -Target "corp.contoso.com" -Scope Domain

Получение метаданных репликации по входящим партнерам всех контроллеров домена для раздела по умолчанию в домене corp.contoso.com.

Get-ADReplicationPartnerMetadata -Target "corp.contoso.com" -Scope Forest –Partition Configuration

Получение метаданных репликации по входящим партнерам всех контроллеров домена для раздела конфигурации в домене corp.contoso.com.

Get-ADReplicationFailure -Target corp-DC01,corp-DC02

Сбор данных, описывающих сбой репликации Active Directory, с corp-DC01 и corp-DC02.

Get-ADReplicationFailure -Target Biberevo -Scope Site

Сбор данных, описывающих сбои репликации Active Directory, со всех контроллеров домена на сайте Biberevo.

Get-ADReplicationFailure -Target "corp.contoso.com" -Scope Domain

Сбор данных, описывающих сбои репликации Active Directory, со всех контроллеров домена в домене corp.contoso.com.

Get-ADReplicationFailure –Target "corp.contoso.com" -Scope Forest

Сбор данных, описывающих сбои репликации Active Directory, со всех контроллеров домена в лесу corp.contoso.com.

Get-ADReplicationQueueOperation “corp-DC01.corp.contoso.com”

Получение ожидающих операций в очереди репликации домена corp-DC01 с помощью полного имени сервера каталогов.

Get-ADReplicationUpToDatenessVectorTable -Target "corp.contoso.com" -Scope Domain –Partition Default

New-ADReplicationSite Kunzevo -AutomaticInterSiteTopologyGenerationEnabled $FALSE

Создание нового сайта с именем Kunzevo и задание свойства AutomaticInterSiteTopologyGenerationEnabled для нового объекта.

$schedule = New-Object -TypeName System.DirectoryServices.ActiveDirectory.ActiveDirectorySchedule;$schedule.ResetSchedule();$schedule.SetDailySchedule("Twenty","Zero","TwentyTwo","Thirty");New-ADReplicationSite Chertanovo –ReplicationSchedule $schedule

Создание нового сайта с именем Chertanovo и задание расписания репликации ежедневно с 20:00 до 22:30.

Get-ADReplicationSite -Filter {WindowsServer2003KCCSiteLinkBridgingEnabled -eq $TRUE}

Получение всех сайтов, для которых включен флажок WindowsServer2003KCCBehaviorEnabled.

Set-ADReplicationSite Dinamo -InterSiteToplogyGenerator corp-DC02 -AutomaticInterSiteTopologyGenerationEnabled $FALSE

Задание свойств сайта с именем Dinamo.

Get-ADReplicationSite -Filter * | % {Set-ADReplicationSite $_ -ScheduleHashingEnabled $TRUE}

Получение всех сайтов в каталоге и задание значения True (истина) для свойства ScheduleHashingEnabled на этих объектах сайта.

$schedule = New-Object -TypeName System.DirectoryServices.ActiveDirectory.ActiveDirectorySchedule;$schedule.ResetSchedule();$schedule.SetDailySchedule("Twenty","Zero","TwentyTwo","Thirty");Set-ADReplicationSite "VDNKH" –ReplicationSchedule $schedule

Задание ежедневного расписания репликации на сайте VDNKH.

Get-ADReplicationSite -Filter {Description -eq "For testing only."} | Remove-ADReplicationSite

Получение и удаление сайтов, предназначенных только для тестирования.

New-ADReplicationSiteLink "Sokolniki-Tverskaya" –SitesIncluded Europe,Asia –Cost 100 –ReplicationFrequencyInMinutes 15 -InterSiteTransportProtocol IP

Создание новой связи сайтов с именем Sokolniki-Tverskaya между двумя сайтами Sokolniki и Tverskaya и задание параметров Cost, ReplicationFrequencyInMinutes и InterSiteTransportProtocol для нового объекта.

$schedule = New-Object -TypeName System.DirectoryServices.ActiveDirectory.ActiveDirectorySchedule;$schedule.ResetSchedule();$schedule.SetDailySchedule("Twenty","Zero","TwentyTwo","Thirty");New-ADReplicationSiteLink "Perovo-Birulevo" –SitesIncluded Perovo,Birulevo–ReplicationSchedule $schedule

Создание новой связи сайтов с именем Perovo-Birulevo между двумя сайтами Perovo и Birulevo и задание расписания репликации ежедневно с 20:00 до 22:30.

Get-ADReplicationSiteLink -Filter *

Получение всех связей сайтов.

Get-ADReplicationSiteLink -Filter {SitesIncluded -eq "Voronezh"} | FT Name,SitesIncluded -A

Получение всех связей сайтов, включающих Voronezh.

Get-ADReplicationSiteLink -Filter {Cost -gt 100 -and ReplicationFrequencyInMinutes -lt 15}

Получение всех связей сайтов со стоимостью больше чем 100 и частотой репликации меньше чем 15 минут.

Get-ADReplicationSiteLink "Argentina-Jamaica" -Properties ReplicationSchedule

Получение свойства ReplicationSchedule связи сайтов с именем Argentina-Jamaica.

Set-ADReplicationSiteLink "Europe-Asia" –SitesIncluded @{Add=”Asia2”;Remove=”Asia”}

Добавление сайта Asia2 к связи сайтов Europe-Asia и удаление сайта Asia.

Get-ADReplicationSiteLink -Filter {ReplicationFrequencyInMinutes -ge 60} -Properties Cost | % {Set-ADReplicationSiteLink $_ -Cost 200}

Получение всех связей сайтов в каталоге с частотой репликации, большей либо равной 60 минутам. Задание значения 200 для свойства Cost на объектах в этих связях сайтов.

$schedule = New-Object -TypeName System.DirectoryServices.ActiveDirectory.ActiveDirectorySchedule;$schedule.ResetSchedule();$schedule.SetDailySchedule("Twenty","Zero","TwentyTwo","Thirty");Set-ADReplicationSiteLink "NorthAmerica-SouthAmerica" –ReplicationSchedule $schedule

Задание ежедневного расписания репликации для связи сайтов с именем NorthAmerica-SouthAmerica.

Remove-ADReplicationSiteLink "Europe-Asia"

Удаление связи сайтов с именем Europe-Asia.

Get-ADReplicationSiteLink -Filter {SitesIncluded -eq "NorthAmerica"} | Remove-ADReplicationSiteLink

Получение и удаление связей сайтов, включающих сайт NorthAmerica.

New-ADReplicationSiteLinkBridge "NorthAmerica-Asia" –SiteLinksIncluded "NorthAmerica-Europe","Europe-Asia"

Создание нового моста связей сайтов с именем NorthAmerica-Asia, соединяющего две связи сайтов: NorthAmerica-Europe и Europe-Asia.

New-ADReplicationSiteLinkBridge "NorthAmerica-Asia" –SiteLinksIncluded "NorthAmerica-Europe","Europe-Asia" -InterSiteTransportProtocol IP

Создание нового моста связей сайтов с именем NorthAmerica-Asia, соединяющего две связи сайтов NorthAmerica-Europe и Europe-Asia, и задание свойства InterSiteTransportProtocol для нового объекта.

Get-ADReplicationSiteLinkBridge -Filter *

Получение всех мостов связей сайтов.

Get-ADReplicationSiteLinkBridge -Filter {SiteLinksIncluded -eq "NorthAmerica-Europe"} | FT Name,SiteLinksIncluded -A

Получение всех мостов связей сайтов, включающих связь сайтов NorthAmerica-Europe.

Get-ADReplicationSiteLinkBridge "NTagil-VTagil" -Properties *

Получение свойств моста связей сайтов с именем NTagil-VTagil.

Get-ADReplicationSiteLinkBridge -Filter {SiteLinksIncluded -eq "NorthAmerica-Europe" -and SiteLinksIncluded -eq "Europe-Asia"} -Properties SiteLinksIncluded | % {Set-ADReplicationSiteLinkBridge $_ -SiteLinksIncluded @{Add=’NorthAmerica-Europe2’,’Europe2-Asia’;Remove=’NorthAmerica-Europe’,’Europe-Asia’}}

Получение всех мостов связей сайтов в каталоге, включающем связи сайтов NorthAmerica-Europe и Europe-Asia. Обновление объектов моста связей сайтов с заменой Europe на Europe2.

Remove-ADReplicationSiteLinkBridge "Piter-Moscow"

Удаление моста связей сайтов Piter-Moscow.

Get-ADReplicationSiteLinkBridge -Filter {SiteLinksIncluded -eq "Europe-Asia"} | Remove-ADReplicationSiteLinkBridge

Получение и удаление мостов связей сайтов, включающих связь сайтов Europe-Asia.

New-ADReplicationSubnet –Name "10.0.0.0/25"

Создание новой подсети с именем 10.0.0.0/25.

New-ADReplicationSubnet -Name "10.10.0.0/22" –Site Asia –Location “Tokyo,Japan”

Создание новой подсети с именем 10.10.0.0/22 и со связанным сайтом Asia, а также задание значения «Tokyo,Japan» для свойства Location.

Get-ADReplicationSubnet -Filter *

Получение всех подсетей.

Get-ADReplicationSubnet -Filter {Location -like "*Japan"}

Получение всех подсетей, находящихся в Японии.

Get-ADReplicationSubnet "10.0.0.0/25"

Получение подсети 10.0.0.0/25.

Get-ADReplicationSubnet "10.0.0.0/25" -Properties *

Получение всех свойств подсети 10.0.0.0/25.

Set-ADReplicationSubnet "10.0.0.12/22" –Site Asia –Location “Tokyo,Japan”

Задание свойств подсети 10.0.0.12/22.

Get-ADReplicationSubnet -Filter {Location -like "*Japan"} -Properties Site | % {Set-ADReplicationSubnet $_ -Site Asia}

Получение всех подсетей в каталоге, находящихся в Японии, и задание сайта Asia в качестве их связанного сайта.

Get-ADReplicationSubnet -Filter {Location -like "*Japan"} | Remove-ADReplicationSubnet

Получение и удаление всех подсетей, находящихся в Японии.

Get-ADReplicationConnection -Filter *

Получение всех подключений репликации.

Get-ADReplicationConnection -Filter {ReplicateFromDirectoryServer -eq "corp-DC01"}

Получение всех подключений репликации, источник репликации которых — corp-DC01.

Get-ADReplicationConnection "5f98e288-19e0-47a0-9677-57f05ed54f6b" -Properties *

Получение всех свойств подключения репликации с именем 5f98e288-19e0-47a0-9677-57f05ed54f6b.

Set-ADReplicationConnection "5f98e288-19e0-47a0-9677-57f05ed54f6b" -ReplicateFromDirectoryServer corp-DC01

Задание для подключения репликации с именем 5f98e288-19e0-47a0-9677-57f05ed54f6b источника репликации corp-DC01.

$schedule = New-Object -TypeName System.DirectoryServices.ActiveDirectory.ActiveDirectorySchedule;$schedule.ResetSchedule();$schedule.SetDailySchedule("Twenty","Zero","TwentyTwo","Thirty");Get-ADReplicationConnection -Filter {ReplicateFromDirectoryServer -eq "corp-DC01"} -Properties ReplicationSchedule | % {Set-ADReplicationConnection $_ - ReplicationSchedule $schedule}

Получение всех подключений репликации в каталоге, источник репликации которых — corp-DC01. Задание ежедневного расписания репликации на этих объектах подключений.

Примечание: Командлеты Windows PowerShell для репликации и топологии Active Directory доступны в следующих средах:

  • Контроллер домена Windows Server 2012
  • Windows Server 2012 с установленными средствами администрирования ролей для доменных служб Active Directory и служб Active Directory облегченного доступа к каталогам.
  • Windows® 8 с установленными средствами администрирования ролей для доменных служб Active Directory и служб Active Directory облегченного доступа к каталогам.
Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s