使用 Powershell 将组中的多个用户添加到 Active Directory 组

使用 Powershell 将组中的多个用户添加到 Active Directory 组

我有一个 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
        }
    }
}

相关内容