Любая помощь будет принята с благодарностью! Пожалуйста, спросите, если вы чего-то не понимаете. Я пытаюсь объяснить это как можно лучше.
Я пытаюсь изменить значение (CN = DS-Replication-Get-Changes-All). Идентификатор rightsGuid для controlAccessRight - 1131f6ad-9c07-11d1-f79f-00c04fc2dcd2. Я использовал powershell для обновления атрибутов в AD, но не знаю, как обновить права в конфигурации или разделах схемы. Я использовал приведенный ниже сценарий для обновления прав администраторов, чтобы они могли изменять пароли и т. Д., Но теперь мне нужно выяснить, как работать с разделами конфигурации и схемы.
Import-Module ActiveDirectory
#Bring up an Active Directory command prompt so we can use this later on in the script
cd ad:
$acl = get-acl "ad:DC=corp,DC=domain,DC=net"
$group = Get-ADgroup 'AD Service Administration Tasks'
$sid = new-object System.Security.Principal.SecurityIdentifier $group.SID
# The following object specific ACE is to grant Group permission to change user password on all user objects under OU
$objectguid = new-object Guid 00299570-246d-11d0-a768-00aa006e0529 # is the rightsGuid for the extended right User-Force-Change-Password (“Reset Password”) class
$inheritedobjectguid = new-object Guid bf967aba-0de6-11d0-a285-00aa003049e2 # is the schemaIDGuid for the user
$identity = [System.Security.Principal.IdentityReference] $SID
$adRights = [System.DirectoryServices.ActiveDirectoryRights] "ExtendedRight"
$type = [System.Security.AccessControl.AccessControlType] "Allow"
$inheritanceType = [System.DirectoryServices.ActiveDirectorySecurityInheritance] "Descendents"
$ace = new-object System.DirectoryServices.ActiveDirectoryAccessRule$identity,$adRights,$type,$objectGuid,$inheritanceType,$inheritedobjectguid
$acl.AddAccessRule($ace)
Set-acl -aclobject $acl "ad:DC=corp,DC=domain,DC=net"
В DS-Replication-Get-All-Changes
с расширенным правом очень легко работать, поскольку оно применяется не к отдельным объектам, а ко всему разделу!
Вам нужно установить его только один раз, непосредственно на вершине (или «корневом» объекте) раздела - это означает, что InheritanceObjectType
совершенно не имеет значения, так как в любом случае он не передается по наследству.
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
Вместо указания «Нет» InheritanceFlags
вариант и пустой гид наследования, просто оставьте два последних аргумента при создании ActiveDirectoryAccessRule
То же самое относится и к Configuration
и Schema
разделов, просто замените DistinguishedName из $rootObjACL
Чтобы найти DN раздела схемы и конфигурации, вы можете либо просмотреть AD:\
PSDrive (Get-ChildItem AD:
) или вы можете проверить значения, рекламируемые RootDSE
:
$RootDSE = [ADSI]"LDAP://RootDSE"
$SchemaDN = [string]$RootDSE.schemaNamingContext
$ConfigDN = [string]$RootDSE.configurationNamingContext