Как создать группы безопасности для всех подразделений в AD - PullRequest
0 голосов
/ 21 февраля 2020

В моей задаче необходимо создать группы по названию подразделения с учетом вложенности.

Например, есть такое подразделение

OU=Credential,OU=DepIT,DC=Contoso,DC=loc

, тогда мне нужно создайте следующие группы:

  • В DepIT: три группы DepIT_R, DepIT_W, DepIT_L

  • В Credential: Две группы DepIT_Credential_R, DepIT_Credential_W

Наконец, DepIT_Credential_R и DepIT_Credential_W должны быть членами DepIT_L.

Теперь структура следующим образом: OU DepIT, в нем OU Credential. Я подготовил скриншоты того, что я хотел бы сделать:

1. DepIT - structure

2. DepIT - structure and groups

3. Credential - groups

4. DepIT_L group members

Моя попытка на данный момент:

$OU = "OU=DepIT,DC=Contoso,DC=loc"
$one_level_OU = Get-ADOrganizationalUnit -SearchBase $OU -SearchScope OneLevel -filter *


$one_level_OU | 

foreach{

New-ADGroup -Name $($_.Name+"_RW") -GroupCategory Security -groupscope global -Path $_.DistinguishedName
New-ADGroup -Name $($_.Name+"_R") -GroupCategory Security -groupscope global -Path $_.DistinguishedName
New-ADGroup -Name $($_.Name+"_L") -GroupCategory Security -groupscope global -Path $_.DistinguishedName

    $ous = Get-ADOrganizationalUnit -SearchBase "OU=$($_.name),OU=DepIT,DC=Contoso,DC=loc" -SearchScope Subtree -filter "name -notlike '*$($one_level_OU.Name)*'"

    $group_L = get-adgroup -Filter "name -like '*_L'" -Properties * | select name

    $ous | foreach {

       New-ADGroup -Name $($_.Name+"_RW") -GroupCategory Security -groupscope global -Path $_.DistinguishedName
       New-ADGroup -Name $($_.Name+"_R") -GroupCategory Security -groupscope global -Path $_.DistinguishedName


       foreach ($gr in $group_L) {
            Add-ADGroupMember -Identity $($_.name) -Members "$($_.Name+"_RW")", "$($_.Name+"_R")"
       }
    }
}

Большое спасибо за вашу помощь.

...