Active Directory用户组跨用户复制PowerShell脚本报错排查请求
解决AD用户组复制脚本的报错问题
嘿,我来帮你搞定这个PowerShell脚本的问题!你遇到的那个「找不到接受参数'Microsoft.ActiveDirectory.Management.ADPropertyValueCollection'的位置参数」报错,其实是因为Add-ADGroupMember的参数用法不对,咱们一步步来修正:
问题根源
你原来的脚本最后一行直接把组的DN集合通过管道传给Add-ADGroupMember,但这个命令默认不会自动把管道输入绑定到组的标识参数上,导致它没法识别传入的集合类型,所以抛出了参数错误。
修正后的脚本
把最后一行改成逐个遍历组的方式,就能正常工作了,记得替换里面的占位符哦:
# 替换为实际的源用户名、目标用户名和你的AD域名 $CopyFromUser = Get-ADUser "source_user_name" -Server "your_domain.com" -Properties MemberOf $CopyToUser = Get-ADUser "target_user_name" -Server "your_domain.com" -Properties MemberOf # 筛选出源用户有但目标用户没有的组,逐个添加目标用户到这些组里 $CopyFromUser.MemberOf | Where-Object { $CopyToUser.MemberOf -notcontains $_ } | ForEach-Object { Add-ADGroupMember -Identity $_ -Members $CopyToUser -Server "your_domain.com" } pause
关键修正点
- 用
ForEach-Object遍历每个需要添加的组,确保每个组单独被Add-ADGroupMember处理 - 明确指定
-Identity参数来传入组的DN,这是Add-ADGroupMember识别组的正确方式 - 保留
-Server参数确保命令指向正确的AD域控制器,避免环境混乱
额外注意事项
- 运行脚本的账号必须拥有添加AD组成员的权限,不然会报权限不足的错误
- 用户名和域名最好用双引号括起来,避免遇到包含特殊字符的名称时出问题
内容的提问来源于stack exchange,提问作者Chen Tamayev
相关产品推荐
相关产品推荐

