通过输入 SAM 账户名称将用户添加到组

注意:成员列表需要使用 SamAccountName  属性

Add-ADGroupMember -Identity VIP_全球_中国_华东区 -Members caopengbo,liuhaobo,liushuyan,yinmingbiao

通过指定组织单位范围将用户添加到组

$_.SamAccountName$_.ObjectGUID 通用

Get-ADUser -Filter * -SearchBase "OU=delconf,OU=outline,OU=control,OU=ac,OU=testgroup,DC=hxx,DC=tt" | foreach{Add-ADGroupMember -Identity deltest -Members $_.SamAccountName}

通过导入 CSV 数据列表将用户添加到组

$_.SAMName = CSV 数据定位,$_.ObjectGUID = 用户属性识别

import-csv .\list.csv | foreach{Get-ADUser -Identity $_.SAMName} | foreach{Add-ADGroupMember -Identity VIP_全球_中国_华东区 -Members $_.ObjectGUID}

CSV 数据明细

该数据的用户账户名称必须为 SAM 类型

通过实践排除常见问题故障的思路和方案

以上命令需要注意 -Members $_.SamAccountName 中的名称调用需要使用 SamAccountName 属性,如果直接使用 $_.Name 属性将在执行过程中提示如下错误:

Get-ADUser -Filter * -SearchBase "ou=创意中心,ou=用户组,ou=集团,dc=hxx,dc=tt" | foreach{Add-ADGroupMember -Identity CreativeCenter -Members $_.name}
add-adgroupmember : 无法在 “DC=hxx,DC=tt” 下找到标识为 “何依轩” 的对象。
所在位置 行:1 字符: 80
+ ... * | foreach{Add-ADGroupMember -Identity CreativeCenter -Members $_.na ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (何依轩:ADPrincipal) [Add-ADGroupMember], ADIden
ti    tyNotFoundException
    + FullyQualifiedErrorId : SetADGroupMember.ValidateMembersParameter,Microsoft.ActiveDirec
   tory.Management.Commands.AddADGroupMember

add-adgroupmember : 无法在 “DC=hxx,DC=tt” 下找到标识为 “何小瑶” 的对象。
所在位置 行:1 字符: 80
+ ... * | foreach{add-adgroupmember -identity CreativeCenter -members $_.na ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (何小瑶:ADPrincipal) [Add-ADGroupMember], ADIden
ti    tyNotFoundException
    + FullyQualifiedErrorId : SetADGroupMember.ValidateMembersParameter,Microsoft.ActiveDirec
   tory.Management.Commands.AddADGroupMember

根据以上错误,可以判断 get-aduser 命令已经执行正常,获取到 “何依轩” 和 “何小瑶” 两个用户,但是在执行 Add-ADGroupMember 命令时却提示找不到这两个对象。

在此情况下我们可以想到 get-aduser 已经成功获取并传递给 Add-ADGroupMember 命令两个对象:“何依轩” 和 “何小瑶”,但 Add-ADGroupMember 通过 name 属性在 “DC=hxx,DC=tt” 容器中来搜索不到这两个对象,所以我们可以意识到通过 name 属性来获取用户是有问题的。

目前通过本文章的上下文可以了解到 get-aduser 命令已经获取到 name 属性的 “何依轩” 和 “何小瑶” 并传递给 Add-ADGroupMember,Add-ADGroupMember 也识别到了 “何依轩” 和 “何小瑶”,无奈 Add-ADGroupMember 太傻无法通过 name 属性找到这两个对象,所以为了确保全局通用我们使用【Sam 账户名称】方式来调用,即通过命令 -Members $_.SamAccountName 获取 SamAccountName 的属性:“heyixuan” 和 “hexiaoyao”,如此就如文章开始的执行结果显示,正常完成操作。

以上错误仅在使用中文做为 name 值时才会发生,所以在使用中文命令名称时获取用户应全局使用 SamAccountName 属性的值,避免以上类似错误。

点击了解 Active Directory 对象属性名称解析:https://hexingxing.cn/active-directory-object-attribute-name-resolution/

测试使用英文做为用户名称,且使用 -members $_.name 获取值

通过获取用户的属性 “Name” 和 “SamAccountName” 值均为英文的 “hexiaomeng”;

Get-ADUser -Filter * -SearchBase "ou=企划中心,ou=用户组,ou=集团,dc=hxx,dc=tt"


DistinguishedName : CN=hexiaomeng,OU=企划中心,OU=用户组,OU=集团,DC=hxx,DC=tt
Enabled           : True
GivenName         : hexiaomeng
Name              : hexiaomeng
ObjectClass       : user
ObjectGUID        : 0d2de429-486a-484f-896b-3f2a0bce152a
SamAccountName    : hexiaomeng
SID               : S-1-5-21-1396366169-2366585322-2236028602-1609
Surname           :
UserPrincipalName : hexiaomeng@hxx.tt

执行完整命令 Get-ADUser -Filter * -SearchBase "ou=企划中心,ou=用户组,ou=集团,dc=hxx,dc=tt" | foreach{Add-ADGroupMember -Identity MDCenter -Members $_.name}

Get-ADUser -Filter * -SearchBase "ou=企划中心,ou=用户组,ou=集团,dc=hxx,dc=tt" | foreach{Add-ADGroupMember -Identity MDCenter -Members $_.name}

也是正常执行完成的,所以为了确保全局通用,如果使用中文做为 name 属性值,那么使用 SamAccountName 的属性,如果 name 属性值是英文,那么 SamAccountName 和 name 都可以做为调用属性。

测试 -members $_.UserPrincipalName 属性

同时,使用-Members $_.UserPrincipalName 属性也是产生报错,所以使用 SamAccountName 的属性是万能通用的。

Get-ADUser -Filter * -SearchBase "ou=创意中心,ou=用户组,ou=集团,dc=hxx,dc=tt" | foreach{Add-ADGroupMember -Identity CreativeCenter -Members $_.UserPrincipalName}
add-adgroupmember : 无法在 “DC=hxx,DC=tt” 下找到标识为 “heyixuan@hxx.tt” 的对象。
所在位置 行:1 字符: 80
+ ... " | foreach{Add-ADGroupMember -Identity CreativeCenter -Members $_.Us ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (heyixuan@hxx.tt:ADPrincipal) [Add-ADGroupMembe
   r], ADIdentityNotFoundException
    + FullyQualifiedErrorId : SetADGroupMember.ValidateMembersParameter,Microsoft.ActiveDirec
   tory.Management.Commands.AddADGroupMember

add-adgroupmember : 无法在 “DC=hxx,DC=tt” 下找到标识为 “hexiaoyao@hxx.tt” 的对象。
所在位置 行:1 字符: 80
+ ... " | foreach{add-adgroupmember -identity CreativeCenter -members $_.Us ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (hexiaoyao@hxx.tt:ADPrincipal) [Add-ADGroupMemb
   er], ADIdentityNotFoundException
    + FullyQualifiedErrorId : SetADGroupMember.ValidateMembersParameter,Microsoft.ActiveDirec
   tory.Management.Commands.AddADGroupMember

何星星原创文章仅用于个人学习,当前页面暂不支持复制操作,了解详情或文章转载请 点此 继续!

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用*标注