我不明白我做错了什么:
Get-ADPrincipalGroupMembership UserName | select name | where {$_.name -like "nac*"} | Add-ADGroupMember -Identity **$_.name** -Members UserName
这是我得到的错误:
Add-ADGroupMember:无法验证参数'Identity'上的参数。 参数为空。为参数提供有效值,然后 尝试再次运行该命令。
我应该在$_.name
中输入什么?
答案 0 :(得分:0)
如果在$ Username中存储了一个值,请确保包含$字符,以便PowerShell将其识别为变量。您可能还想从最后一个cmdlet中删除* s。这可能无法单线使用。试试这个:
$Group = Get-ADPrincipalGroupMembership $UserName | select name | where {$_.name -eq "nac*"}
Add-ADGroupMember -Identity $Group.Name -Members $UserName
答案 1 :(得分:0)
尝试一下:
$groups = get-adprincipalgroupmembership $sourceuser | ? Name -like "nac*"
#check content of $groups
$groups | select Name
add-adprincipalgroupmembership $targetuser -memberof $groups
我确定这会起作用。否则,请发布您的错误消息。
答案 2 :(得分:0)
您需要注意cmdlet可以处理的-Identity
参数:
Identity参数应为以下之一:
两个cmdlet还允许通过管道将对象发送到Identity参数。
对于Add-ADGroupMember
,这将是一个组对象。
对于Get-ADPrincipalGroupMembership
,您可以使用用户,组或计算机对象。
这部分代码返回$ UserName所属的组对象。
(请记住:$UserName
是用户的专有名称,GUID,安全标识符或SAM帐户名。)
Get-ADPrincipalGroupMembership $UserName | Where-Object { $_.Name -like "nac*" }
接下来,您要向$ UserName所属的组添加不同用户,对吗?
在这种情况下,请设置一个变量来存储第二个用户,再次使用专有名称, GUID,安全标识符或SAM帐户名,然后使用类似以下的内容:
Get-ADPrincipalGroupMembership $UserName | Where-Object { $_.Name -like "nac*" } | Add-ADGroupMember -Members $AnotherUserToAddToThisGroup