O DS-Replication-Get-All-Changes
estendido é muito fácil de usar, já que não se aplica a objetos individuais, mas a uma partição inteira!
Você só precisa defini-lo uma vez, diretamente no ápice (ou objeto "root") da partição - o que significa que o InheritanceObjectType
é totalmente irrelevante, já que ele não deve ser herdado de qualquer maneira.
Import-Module ActiveDirectory
$rootObjPath = "AD:\DC=corp,DC=domain,DC=net"
$rootObjACL = Get-Acl $rootObjPath
$group = Get-ADgroup 'AD Service Administration Tasks'
$SID = New-Object System.Security.Principal.SecurityIdentifier -ArgumentList $group.SID
# The following object specific ACE is to grant Group the permission to replicate all directory changes from this partition
$objectGuid = New-Object Guid 1131f6ad-9c07-11d1-f79f-00c04fc2dcd2
$ADRight = [System.DirectoryServices.ActiveDirectoryRights]"ExtendedRight"
$ACEType = [System.Security.AccessControl.AccessControlType]"Allow"
$ACE = New-Object System.DirectoryServices.ActiveDirectoryAccessRule -ArgumentList $SID,$ADRight,$ACEType,$objectGuid
$rootObjACL.AddAccessRule($ACE)
Set-Acl $rootObjPath -AclObject $rootObjACL
Em vez de especificar a opção "Nenhum" InheritanceFlags
e um guia de Herança vazio, apenas deixe os dois últimos argumentos para fora quando você criar o ActiveDirectoryAccessRule
A mesma coisa se aplica às partições Configuration
e Schema
, basta substituir o Nome Distinto de $rootObjACL
Para encontrar o DN da partição de esquema e configuração, você pode procurar o AD:\
PSDrive ( Get-ChildItem AD:
) ou pode inspecionar os valores anunciados pelo RootDSE
:
$RootDSE = [ADSI]"LDAP://RootDSE"
$SchemaDN = [string]$RootDSE.schemaNamingContext
$ConfigDN = [string]$RootDSE.configurationNamingContext