【问题标题】:Adding groups to AD user with a ps1 script使用 ps1 脚本向 AD 用户添加组
【发布时间】:2018-03-15 08:26:12
【问题描述】:

通过以下脚本,我想向 AD 用户添加一个组,但它没有这样做,并且我没有收到任何错误。

param($Userid,$AdditionalGroup)

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

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

【问题讨论】:

    标签: powershell active-directory active-directory-group


    【解决方案1】:

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

    param($Userid,$AdditionalGroup)
    
    # Get user
    $User = Get-ADUser `
        -Filter "SamAccountName -eq '$Userid'"
    
    # Add comment
    Add-ADGroupMember `
        -Identity $AdditionalGroup `
        -Members $User
    

    【讨论】:

      【解决方案2】:

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

      • 专有名称
      • 一个 GUID (objectGUID)
      • 安全标识符 (objectSid)
      • SAM 帐户名称 (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
      

      【讨论】:

        【解决方案3】:

        这也可以(不带单引号):

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

        【讨论】:

        • 有趣,@mklement0 在我寻找你的特定帖子时,你打败了我。 :)
        • $Mind = "BLOWN!"
        • 你知道的。这可能就是为什么我如此频繁地使用 -Filter 参数打勾,而不是最终使用 | ?{$_.whatever -eq "whatever"} 代替。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-09
        • 1970-01-01
        • 2020-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多