如何使用Powershell将用户批量添加到安全组

时间:2013-11-08 16:46:24

标签: powershell

我正在尝试使用以下Powershell脚本向AD安全组添加用户列表,我收到以下错误。 Add-ADGroupMember:找不到具有标识的对象:

anoybody可以告诉我我做错了什么。用户名确实存在于AD

Import-Module ActiveDirectory 
$comps=Get-Content names.txt 

foreach ($comp in $comps)
{$dns=get-aduser $comp
$b=$dns.distinguishedname
Add-ADGroupMember -Identity  $b GIT_GS_AMU_Windows7_Object 
}

4 个答案:

答案 0 :(得分:0)

你的论点被翻转为Add-ADGroupMember-Identity是群组,而不是用户。

试试这个:

Import-Module ActiveDirectory 
$comps=Get-Content names.txt 

foreach ($comp in $comps) {
  Get-ADUser $comp | Add-ADGroupMember GIT_GS_AMU_Windows7_Object -Members $_
}

但是,如果您拥有大量用户,则将它们一次性添加到组中会更有效,而不是单独添加。像

这样的东西
Import-Module ActiveDirectory 
$comps=Get-Content names.txt 
$users = @()

$Users = foreach ($comp in $comps) {
  Get-ADUser $comp
}
Add-ADGroupMember GIT_GS_AMU_Windows7_Object -Members $users

答案 1 :(得分:0)

我暂时没有使用AD模块,但Identity是组,而不是成员。另外,您是在添加计算机还是用户? $comp表示计算机,get-aduser表示用户。 :S

TechNet article表示-Members应该允许一系列可以是DN,对象甚至是samaccountnames的主体,所以你可以尝试:

Import-Module ActiveDirectory 
$comps=Get-Content names.txt 

Add-ADGroupMember -Identity "GIT_GS_AMU_Windows7_Object" -Members $comps

答案 2 :(得分:0)

试试这个:

$grp = 'GIT_GS_AMU_Windows7_Object '

Import-Module ActiveDirectory 
$comps=Get-Content names.txt 

$grpDN = (get-adgroup $grp).distinguishedname

foreach ($comp in $comps)
{$dns=get-aduser $comp
$b=$dns.distinguishedname
Add-ADGroupMember -Identity  $grpDN -member $dns 
}

答案 3 :(得分:0)

如果要使用备用凭据将用户添加到组,可以使用此选项:

Import-module ActiveDirectory 
$cred = Get-Credential
Get-Content ".\users.txt" | % { 
Add-ADGroupMember -Credential $cred -Identity Test_Group -Member $_
}