我正在开发一个简单的脚本,该脚本应该根据一年中的一周向分发组添加联系人。我的错误是我的脚本可以添加objectclass:User
但是当我尝试使用联系人GUID时脚本会给我错误:
Add-ADGroupMember : Cannot find an object with identity: '123dd2345-12f0-542b-c3e6-5774bac431aa' under: 'DC=MY,DC=DOMAIN'.
At line:1 char:25
+ get-adgroup $ADGroup | Add-ADGroupMember -members $zvar.ObjectGUID
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (123dd2345-12f0-542b-c3e6-5774bac431aa:ADPrincipal) [Add-ADGroupMember], ADIdentityNotFoundException
+ FullyQualifiedErrorId : SetADGroupMember.ValidateMembersParameter,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
我使用的脚本部分看起来像这样:
$zvar = get-adobject -filter {displayname -eq "Valentine, John (CELL)" } #this is my contact displayname that is put in a variable with necessary properties
get-adgroup "Dist - Support group" | Add-ADGroupMember -members $zvar.ObjectGUID #this is my Distribution group, whatever the properties I put to my contact object I get the error message above i.e. $zvar.name, $zvar.distinguishedname, etc
如果我用ObjectClass:用户“Valentine,John”替换值“Valentine,John(CELL)”,则命令将成功而不会出错。
我正确使用命令吗? 我可以使用Quest模块,但我想避免使用第三方。
提前致谢
答案 0 :(得分:3)
今天也遇到了这个问题:您无法使用"objectClass=contact"
cmdlet将类Add-ADGroupMember
的AD对象添加到组中。
但是,AD组的成员只是存储在多值属性"成员"中,并且每个*-ADObject
和相关命令都支持-Add
,{{1} },-Replace
和-Clear
参数。
因此,这可以添加一个用户:
-Replace
这会删除用户:
Set-ADGroup -Identity "GroupName" -Add @{'member'=$contact.DistinguishedName};
答案 1 :(得分:0)
作为@mjolinor评论,交换cmdlet将是解决方案,但我没有它需要使用它。所以我将使用Quest-cmdlet。有了它,它正在发挥作用。