我在PowerShell中编写了一个创建用户的脚本。此脚本将用户添加到基于具有部门名称的模板用户的组。在我的脚本中使用时如下:
Get-ADUser -Filter {name -eq "Temp$($Department.LookupValue)"} -Properties memberof |
Select-Object -ExpandProperty memberof |
Add-ADGroupMember -Members $sAMAccountName
不幸的是,这不起作用,也没有任何错误。
然而,当我只运行代码行时,它可以正常工作
Get-ADUser -Filter {name -eq "TempICT"} -Properties memberof |
Select-Object -ExpandProperty memberof |
Add-ADGroupMember -Members usern
答案 0 :(得分:0)
如评论中所述,您可以使用foreach-object
使用Add-ADGroupMember
循环显示群组名称,但这会导致为用户需要添加到的每个群组调用AD 。使用Add-ADPrincipalGroupMemebership
cmdlet可能更有效,它会在一次操作中将用户添加到多个组:
$Groups = Get-ADUser -Filter {name -eq "TempICT"} -Properties memberof |
Select-Object -ExpandProperty memberof
Add-ADPrincipalGroupMembership -Identity $sAMAccountname -MemberOf $Groups
答案 1 :(得分:0)
以下代码行确实有效,我猜问题是过滤器无法处理点表示法。 JOIN
这不是我想要的100%,因为我现在搜索netbiosname而不是name属性但是它有效。由于netbiosnames的20个字符限制,我必须创建一个子字符串,以使其适用于我的所有部门。