Powershell 将用户从DisplayName列表添加到安全组
我有下面的用户列表,我想根据此列表将Active Directory用户添加到组中。我知道我不能使用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
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,然后你给我看的下面的代码开始工作了!