将用户添加到某个AD组,具体取决于其部门

时间:2019-01-16 15:13:19

标签: powershell

我想将用户从特定部门自动添加到特定AD安全组。

例如,将具有AD Department属性SalesReceptionFinance的所有用户添加到名为APP Group的安全组中。

我设法提出了以下代码,该代码仅显示有关特定部门的用户。

有人可以解释一下如何扩展此代码,以便将用户添加到安全组吗?

Get-ADUser -Filter * -Properties department | 
    Where-Object {$_.department -Like "Sales" -or $_.department -Like "Reception" -or $_.department -Like "Finance"} | 
        Select sAMAccountName, department

2 个答案:

答案 0 :(得分:0)

您可以创建所需用户的数组,并将其用作Add-ADGroupMember的输入,如下所示:

$UserList = Get-ADUser -Filter * -Properties department | 
    Where-Object {$_.department -Like "Sales" -or $_.department -Like "Reception" -or $_.department -Like "Finance"} | 
        Select sAMAccountName
Add-ADGroupMember -Identity 'APP Group' -Members $UserList

答案 1 :(得分:0)

Get-ADUser -Filter中使用实际的过滤器要求比将所有内容通过管道输送到Where-Object并按域中的所有用户进行排序要快得多。

然后您可以使用管道通过Add-ADPrincipalGroupMembership将用户添加到组中。

$filter = 'Department -eq "Sales" -Or Department -eq "Reception" -Or Department -eq "Finance"'
Get-ADUser -Filter $filter | Add-ADPrincipalGroupMembership -MemberOf 'APP Group'

为了便于阅读,我将过滤器放在了变量中,但它可能是单行的:

Get-ADUser -Filter 'Department -eq "Sales" -Or Department -eq "Reception" -Or Department -eq "Finance"' | Add-ADPrincipalGroupMembership -MemberOf 'APP Group'

编辑:

我不能测试是否可以远程工作,但是您应该只能够使用memberof过滤掉组中的用户:

$ADGroup = 'APP Group'
Get-ADUser -Filter 'Department -eq "Sales" -Or Department -eq "Reception" -Or Department -eq "Finance"' | 
    Where-Object {!($_.memberof -like $ADGroup)} |
    Add-ADPrincipalGroupMembership -MemberOf $ADGroup