В моей задаче необходимо создать группы по названию подразделения с учетом вложенности.
Например, есть такое подразделение
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
. Я подготовил скриншоты того, что я хотел бы сделать:
Моя попытка на данный момент:
$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")"
}
}
}
Большое спасибо за вашу помощь.