У меня есть сценарий PowerShell, который должен пройти через конкретный ou и сохранить группы в переменной $ groups. Вот код, который я использую в скрипте:
$Groups = Get-ADGroup -Properties * -Filter * -SearchBase "OU=GFS-USERS,OU=AFS-OU-Groups,OU=AFS,OU=FA,OU=DEPARTMENTS,DC=ou,DC=ad3,DC=blabla,DC=com" -Server "ou.ad3.blabla.com"
Foreach($G In $Groups)
{
Write-Host $G.Name
Write-Host "-------------"
$G.Members
}
Кажется, этот шаг работает нормально.
В моей следующей части сценария я прошу каждую группу и попытаюсь добавить пользователей из каждой группы в группу, где их всех следует объединить. Код выглядит следующим образом:
foreach ($group in $groups)
{
Add-ADGroupMember -Identity "CN=test,OU=AFS-OU-ACLs-EDMS,OU=AFS-OU-Groups,OU=AFS,OU=FA,OU=DEPARTMENTS,DC=ou,DC=ad3,DC=blabla,DC=com" -Members (Get-ADGroupMember $group) -Server "ou.ad3.blabla.com"
}
Когда я запускаю сценарий, он отлично работает для всех пользователей из:
OU=AFS,OU=FA,OU=DEPARTMENTS,DC=ou,DC=ad3,DC=blabla,DC=com
но для всех остальных пользователей я получаю следующую ошибку:
Add-ADGroupMember : The server is unwilling to process the request
At line:1 char:22
Кто-нибудь знает, является ли это проблемой с разрешениями или я что-то делаю не так?
Подумайте о циклическом переходе и добавлении членов в новую группу по одному из старой группы.
$CombinedGroup = ...
$Groups = Get-ADGroup ...
foreach ($Group in $Groups) {
$Members = GetADGroupMember $Group
foreach ($Member in $Members) {
Get-ADUser $Member | Set-ADGroup -Identity $CombinedGroup -Add $Member
}
}
}