我想将用户从特定部门自动添加到特定AD安全组。
例如,将具有AD Department属性Sales
,Reception
或Finance
的所有用户添加到名为APP Group
的安全组中。
我设法提出了以下代码,该代码仅显示有关特定部门的用户。
有人可以解释一下如何扩展此代码,以便将用户添加到安全组吗?
Get-ADUser -Filter * -Properties department |
Where-Object {$_.department -Like "Sales" -or $_.department -Like "Reception" -or $_.department -Like "Finance"} |
Select sAMAccountName, department
答案 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