Add-ADGroupMember语法

时间:2018-08-14 12:32:59

标签: shell powershell active-directory

我不明白我做错了什么:

Get-ADPrincipalGroupMembership UserName | select name | where {$_.name -like "nac*"} | Add-ADGroupMember -Identity **$_.name**  -Members UserName

这是我得到的错误:

  

Add-ADGroupMember:无法验证参数'Identity'上的参数。   参数为空。为参数提供有效值,然后   尝试再次运行该命令。

我应该在$_.name中输入什么?

3 个答案:

答案 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参数应为以下之一:

  • 专有名称(DN)
  • GUID
  • 安全标识符(SID)或
  • 安全帐户管理器(SAM)帐户名

两个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