Назад | Перейти на главную страницу

Добавить права безопасности в расширенное руководство по правам

Любая помощь будет принята с благодарностью! Пожалуйста, спросите, если вы чего-то не понимаете. Я пытаюсь объяснить это как можно лучше.

Я пытаюсь изменить значение (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