我有一个 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
有人知道这是否是权限问题或者我做错了什么吗?
答案1
考虑循环并从旧组中逐个添加成员到新组。
$CombinedGroup = ...
$Groups = Get-ADGroup ...
foreach ($Group in $Groups) {
$Members = GetADGroupMember $Group
foreach ($Member in $Members) {
Get-ADUser $Member | Set-ADGroup -Identity $CombinedGroup -Add $Member
}
}
}