使用 ps1 脚本将组添加到 AD 用户

Adding groups to AD user with a ps1 script

使用以下脚本,我想为 AD 用户添加一个组,但没有成功,而且我没有收到任何错误。

param($Userid,$AdditionalGroup)

# Get user
$User = Get-ADUser `
    -Filter "SamAccountName -eq $Userid"

# Add comment
Add-ADGroupMember `
    -Identity $AdditionalGroup `
    -Members $User

这样的过滤对我不起作用(并产生错误),但是在 $Userid 前后添加 ' 就可以了。

param($Userid,$AdditionalGroup)

# Get user
$User = Get-ADUser `
    -Filter "SamAccountName -eq '$Userid'"

# Add comment
Add-ADGroupMember `
    -Identity $AdditionalGroup `
    -Members $User

这也有效(没有单引号):

$User = Get-ADUser -Filter {SamAccountName -eq $Userid}

由于您只是在 sAMAccountName 上进行直接 -eq 匹配,因此您不需要使用 -FilterIdentity 参数将与其他输入一起接受:

  • A distinguished name
  • A GUID (objectGUID)
  • A security identifier (objectSid)
  • A SAM account name (sAMAccountName)

(documentation link)

这使您的代码非常简单:

$User = Get-ADUser -Identity $Userid

为了进一步简化,您甚至根本不需要使用 Get-ADUser

Add-ADGroupMember -Members (link) 接受与我为 Identity ...

提到的相同的参数

所以可以直接使用$UserID:

param($Userid,$AdditionalGroup)

Add-ADGroupMember -Identity $AdditionalGroup -Members $UserID