我正在尝试使用以下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
}
答案 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 $_
}