我有以下用户列表,我想将Active Directory用户添加到此列表的组中。我知道我无法使用DisplayName
向组添加成员,因此如何将列出的用户添加到组中?
是否有通过将DisplayName
转换为DN
或SamAccountName
来添加用户的好方法?任何建议和建议将受到高度赞赏。
<Userlist.csv>
-----------
AddtoGroupname,DisplayName (*)
Group1,UserName1
Group1,UserName2
Group2,UserName3
...
(*)是需要添加左侧组名的成员用户的DisplayNames。
我们的环境正在运行Powershell 2.0。
答案 0 :(得分:0)
您可以使用Get-ADUser
基于对DisplayName的过滤获取AD用户对象,然后使用Add-ADGroupMember
将其添加到组中来执行此操作。
因为Get-ADUser可能会返回多个结果(如果有重复的显示名称),这会使用ForEach循环遍历任何重复项:
Import-CSV Userlist.csv | ForEach-Object {
$Users = (Get-ADUser -filter "displayname -eq $($_.DisplayName)")
ForEach ($User in $Users) {
Write-Host "Adding $User to $($_.AddtoGroupName)"
Add-ADGroupMember -Identity $_.AddtoGroupName -Members $User
}
}
您可能想要替换/删除Write-Host
,我只是添加了它,以便您可以看到正在发生的事情。