Powershell 将用户从DisplayName列表添加到安全组

Powershell 将用户从DisplayName列表添加到安全组,powershell,windows-server-2008-r2,Powershell,Windows Server 2008 R2,我有下面的用户列表,我想根据此列表将Active Directory用户添加到组中。我知道我不能使用DisplayName将成员添加到组中,因此如何将列出的用户添加到组中 通过将DisplayName转换为DN或SamAccountName,是否有添加用户的好方法?如有任何建议,我们将不胜感激 <Userlist.csv> ----------- AddtoGroupname,DisplayName (*) Group1,UserName1 Group1,UserName2 Grou

我有下面的用户列表,我想根据此列表将Active Directory用户添加到组中。我知道我不能使用
DisplayName
将成员添加到组中,因此如何将列出的用户添加到组中

通过将
DisplayName
转换为
DN
SamAccountName
,是否有添加用户的好方法?如有任何建议,我们将不胜感激

<Userlist.csv>
-----------
AddtoGroupname,DisplayName (*)
Group1,UserName1
Group1,UserName2
Group2,UserName3
...

-----------
AddtoGroupname,DisplayName(*)
组1,用户名1
组1,用户名2
组2,用户名3
...
(*)是需要添加左侧组名的成员用户的显示名


我们的环境正在运行Powershell 2.0。

您可以通过使用
Get ADUser
根据DisplayName上的筛选来获取广告用户对象,然后使用
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
    }
}

您可能想替换/删除
写入主机,我只是添加了它,这样您就可以看到发生了什么。

您可以通过使用
Get ADUser
根据DisplayName上的筛选获取广告用户对象,然后使用
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
    }
}

您可能需要更换/删除写入主机,我刚刚添加了它,以便您可以看到发生了什么。

谢谢标记!!太完美了!!我真的很感激你的帮助!不幸的是,当我测试时它不起作用。。。我不知道为什么,$Users返回null..尝试将筛选器更改为:
“displayname-like$($.displayname)”
哦,可能还需要请求displayname属性。我会相应地修改我的答案。我非常感谢你的帮助。我找到了原因,它是一个csv文件的编码。我用Unicode覆盖了csv,然后你给我看的下面的代码开始工作了!谢谢你,马克!!太完美了!!我真的很感激你的帮助!不幸的是,当我测试时它不起作用。。。我不知道为什么,$Users返回null..尝试将筛选器更改为:
“displayname-like$($.displayname)”
哦,可能还需要请求displayname属性。我会相应地修改我的答案。我非常感谢你的帮助。我找到了原因,它是一个csv文件的编码。我用Unicode覆盖了csv,然后你给我看的下面的代码开始工作了!