使用 Add-ADGroupMember Cmdlet 将用户添加到 AD 组
将用户添加到 Active Directory (AD) 组是系统管理员的一项常见任务。如果任务仅涉及一两个用户,他们通常选择使用 Active Directory 用户和计算机 (ADUC) 或 Active Directory 管理中心 (ADAC)。但当工作涉及更多用户时,PowerShell 是一个更有效的选择。本文介绍了将用户添加到 AD 组 PowerShell cmdlet Add-ADGroupMember。
添加 ADGroupMember
要将用户添加到组,PowerShell 提供了 Add-ADGroupMember cmdlet。
句法
Add-ADGroupMember cmdlet 的语法如下:
Add-ADGroupMember [-WhatIf] [-Confirm] [-AuthType ] [-Credential ] [-Identity] [-Members] <ADPrincipal[]> [-MemberTimeToLive ] [-Partition ] [-PassThru] [-Server ] [-DisablePermissiveModify]参数
Add-ADGroupMember cmdlet 具有以下参数:
- Parameter
描述
- -Identity
-
使用此参数指定要添加新成员的 AD 组。您可以使用组的专有名称 (DN)、全局唯一标识符 (GUID)、安全标识符 (SID) 或安全帐户管理器 (SAM) 名称来指定组。您还可以通过管道传入组。
- -Members
使用此参数指定要添加为组成员的用户、服务帐户、计算机或组。通过 DN、SID、GUID 或 SAM 名称来识别每个成员。要指定多个成员,请使用逗号作为分隔符。请注意,用户、组和计算机对象不能通过管道传递。如果要使用管道,可以使用 Add?ADPrincipalGroupMembership cmdlet。
- -WhatIf
如果您想查看将用户添加到组 PowerShell cmdlet 会执行哪些操作而不实际执行它,请使用此参数。
- -Confirm
如果您希望在 cmdlet 运行之前获得确认提示,请使用此参数。
- -AuthType
使用此参数指定身份验证类型:基本或协商。
- -Credential
如果您需要提供替代凭据,请使用此参数。
- -MemberTimeToLive
使用此参数可以为对象提供保持组成员身份的特定时间范围。
- -Partition
使用此参数指定 cmdlet 应搜索 Identity 参数中指定的组的 Active Directory 分区的 DN。
- -PassThru
使用此参数返回被修改的对象。 (默认情况下,Add-ADGroupMember cmdlet 不会生成任何输出。)
- -Server
使用此参数指定要连接到的 Active Directory 实例。您可以提供域名或目录服务器。
- -DisablePermissiveModify
-
如果用户已经是指定组的成员,则使用此参数可防止 cmdlet 引发错误。
常见用例
将单个用户添加到 AD 组
要将“Jason-Bourne”添加到“The Office”组,请使用以下 PowerShell cmdlet:
Add-ADGroupMember -Identity "The Office" -Members Jason-Bourne此 PowerShell 添加组成员命令不会生成任何输出,因此让我们运行以下命令来检查组的成员资格是否已正确更新:
Get-ADGroupMember -Identity "The Office" | ft将多个用户添加到 AD 组
要将多个用户添加到组中,请用逗号分隔:
Add-ADGroupMember "The Office" Jason-Bourne,Benedict.Cumberbatch,AbbeyCrawford,AbbeyEckels让我们确认一下 PowerShell 将用户添加到组命令的结果:
Get-ADGroupMember -Identity "The Office" | ft将组成员复制到另一个组
有时您可能需要获取一个组的成员列表并将这些用户添加到另一个组。例如,让我们使用 Get-ADGroupMember cmdlet 获取组“The Office”中的所有用户,并使用管道和 ForEach 循环将这些对象传递给 Add-ADGroupMember,这会将它们添加到组“Work from home” ”:
Get-ADGroupMember “The Office” | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “Work from home” -Members $_}要查看这两个组的成员身份,请使用以下 cmdlet:
Get-ADGroupMember -Identity "The Office" | ftGet-ADGroupMember -Identity "Work from home" | ft添加特定 OU 中的所有用户
同样,您可能需要将特定组织单位 (OU) 中的所有用户添加到组中。例如,假设我们有一个名为 Engineering 的 OU,有 21 个用户:
要将这21个用户添加到“工程用户”组中,我们可以使用以下命令:
Get-ADUser -Filter * -SearchBase “OU=Engineering,DC=milkyway,DC=local”| ForEach-Object -process {Add-ADGroupMember -identity "Engineering Users" -Members $_.SamAccountName}现在,让我们检查“Engineering Users”组的成员身份,以确保所有用户都已添加:
Get-ADGroupMember -Identity "Engineering Users" | ft根据 AD 属性添加用户
有时,您想要添加到组中的用户尚未方便地位于 OU 或其他组中。但如果它们具有共同的 AD 属性,您仍然可以轻松地将它们全部添加到一个组中。例如,以下命令将过滤部门属性设置为工程的用户,然后将其添加到“工程用户”组中:
Get-ADUser -filter {(department -eq "Engineering")} | ForEach-Object -process {Add-ADGroupMember -identity "Engineering Users" -Members $_.SamAccountName}让我们通过运行以下命令来确认更改:
Get-ADGroupMember -Identity "Engineering Users" | ft使用 CSV 文件将用户添加到组
您可以从包含 AD 对象列表的 CSV 文件将成员添加到组中。例如,您的人力资源团队可能会向您发送一个 CSV 文件,其中列出要添加到特定组的用户。以下是在 Excel 中打开时的示例文件:
这是与记事本中显示的相同文件:
以下命令使用 CSV 文件中“工程用户”组中列出的用户的“名称”字段:
Import-Csv -Path C:\engineeringusers.csv | foreach-object {Add-ADGroupMember -Identity "Engineering Users" -Members $_.Name}像往常一样,我们来验证一下结果:
Get-ADGroupMember -Identity "Engineering Users" | ft使用 CSV 文件将用户添加到不同的组
现在让我们考虑一个更复杂的场景:CSV 文件中的用户需要添加到不同的组。对于每个用户,该文件指定他们应添加到的组,如下所示:
要将每个用户添加到正确的组,请使用以下 cmdlet:
Import-Csv -Path C:\UsersAndGroups.csv | foreach-object {Add-ADGroupMember -Identity $_.Group -Members $_.Name}要检查结果,我们可以为 CSV 文件中的 5 个组中的每一个组运行 Get-ADGroupMember:
使用 PowerShell 将用户添加到 AD 组比 ADAC 和 ADUC 等手动选项要高效得多。然而,编写和维护脚本需要专门的技能;如果没有足够的专业知识,可能会导致代价高昂的错误。
常见问题解答
如何添加广告组?
要创建新的 AD 组,您可以使用 PowerShell cmdlet New-ADGroup。
如何将成员添加到 AD 组?
使用 PowerShell 将用户添加到组 cmdlet Add?ADGroupMember。添加多个用户时,用逗号分隔。
如何列出 AD 组成员资格?
要列出组的成员,请运行 Get-ADGroupMember。










