Adicionar direitos de segurança a um guia de direitos estendidos

3

Qualquer ajuda seria muito apreciada! Por favor, pergunte se você não entende alguma coisa. Estou tentando explicá-lo da melhor forma possível.

O valor que estou tentando editar é (CN = DS-Replication-Get-Changes-All). O rightsGuid para o controlAccessRight é 1131f6ad-9c07-11d1-f79f-00c04fc2dcd2. Eu usei o powershell para atualizar atributos no AD, mas não tenho idéia de como atualizar os direitos na configuração ou nas partições do esquema. Eu usei o script abaixo para atualizar os direitos dos administradores para poder alterar senhas, etc ... mas agora preciso descobrir como trabalhar com as partições de configuração e esquema.

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"  
    
por NobleMan 15.04.2015 / 15:00

1 resposta

1

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
    
por 15.04.2015 / 23:15