使用ActiveDirectory PowerShell模块,您可以使用Get-AdGroup查询AD组,添加、更新和删除组及组成员。在这篇博文中,您将了解有关Active Directory组PowerShell cmdlet的一些内容,并附有大量示例供参考。
Active Directory组Cmdlets
一旦您安装了ActiveDirectory PowerShell模块,您将找到一些可用于管理组的cmdlet。
Cmdlet Name | Description |
Add-ADGroupMember | Used to add members to an AD group. |
Add-ADPrincipalGroupMembership | Used to add an AD principal to AD groups. |
Get-ADGroup | Used to return a group or groups from AD. |
Get-ADGroupMember | Used to return the members of an AD group. |
Get-ADPrincipalGroupMembership | Used to get the groups an AD principal is a member of. |
New-ADGroup | Used to create a new AD group. |
Remove-ADGroup | Used to delete an AD group. |
Remove-ADGroupMember | Used to remove members from an AD group. |
Remove-ADPrincipalGroupMembership | Used to remove an AD principal from AD groups. |
Set-ADGroup | Used to set the properties of an AD group. |
使用这些cmdlet和一些PowerShell技巧,您可以通过PowerShell管理Active Directory组的各个方面。
使用Get-ADGroupMember查找组的成员
Get-AdGroupMember
cmdlet返回组中的所有成员。
或者,您可以使用Get-Aduser
cmdlet引用特定用户的memberOf
属性。有关如何构建过滤器的刷新,请查看在PowerShell中学习Active Directory和LDAP过滤器。
以下是两个示例。
这将返回一个ADPrincipal对象集合。
将组的成员导出到CSV文件
这将导出每个用户的名字、姓氏和电子邮件地址。将结果从Get-ADGroupMember
管道传递到Get-ADUser
,因为这些是ADPrincipal对象,它们不具有ADUser对象具有的所有属性。
注意使用
Export-CSV
的NoTypeInformation
参数,以确保CSV文件与其他应用程序兼容。
使用Get-ADGroup查找没有成员的组
使用Get-AdGroup
来查找使用过滤器的组。下面是两个示例。
使用New-ADGroup创建新的安全组
您可以使用New-AdGroup
命令创建新的安全组。
如果未提供Path
参数,则新组将在Users容器中创建。组范围必须是DomainLocal
、Global
或Universal
之一。
使用New-ADGroup创建新的分发组
再次使用New-AdGroup
创建分发组。这次,选择GroupCategory
为Distribution
。
使用Add-ADGroupMember将成员添加到组中
可以使用Add-AdGroupMember
命令或Add-ADPrincipalGroupMembership
命令将用户添加到Active Directory组中。
此命令将组指定为Identity。
此命令将AD principal指定为Identity。
将文本写入具有Set-AdGroup的Notes
属性。
ADUC中标记为Notes的字段由Get-AdGroup
返回的Info
属性表示。
首先,找到要更改的组,设置Info
属性,然后使用Set-AdGroup
将更改提交到AD。
使用Remove-ADGroupMember移除组成员
像所有PowerShell cmdlet一样,您可以使用Confirm
参数在进行更改之前提示。此行为也适用于Remove-AdGroupMember
和Remove-ADPrincipalGroupMembership
cmdlet。
您可以在不确认的情况下移除组成员。
或者您可以选择使用Confirm
参数在确认的情况下移除组成员。
使用Remove-ADGroup删除组
删除组时无需确认并且需要确认。
使用Rename-ADObject重命名组
您可以通过使用Rename-ADObject
进行一行命令的方式来重命名组。
使用Get-ADGroup获取组的数量
您需要找到通过Get-AdGroup
返回的组的总数吗?使用Count
属性。
使用Get-ADGroup查找具有管理者的组
使用Get-AdGroup
和精心制作的LDAP过滤器筛选所有具有分配给它们的管理者的组。
此操作没有等效的PowerShell过滤器。
找到由特定用户管理的组,使用Get-ADGroup
提升您的过滤技能,并使用PowerShell过滤器或LDAP过滤器找到由特定用户管理的所有组。
使用Set-ADGroup
设置组经理Managed By选项卡在ADUC中允许您指定负责组成员资格的人。这并不自动意味着经理可以更改组的成员资格。为了实现这一点,需要更改有关问题组的Member属性的安全权限。
在Active Directory Users and Computers(ADUC)中为组选中Manager can update membership list框将更改权限以允许此操作。

使用Set-ADGroup
设置ManagedBy属性:
更新访问控制列表需要更多步骤。以下代码片段授予用户Kristin Diaz管理组成员资格的权限。bf9679c0-0de6-11d0-a285-00aa003049e2是组Member
属性的GUID。
如果Kristin还被设置为组的经理,则将选中复选框。如果没有,Kristin仍然能够管理组的成员资格,但在ADUC中不会显示为经理。
通过检查NCSC密码列表,在您的活动目录中查找泄露和不安全的密码。
查找所有安全组
使用PowerShell列出活动目录中的所有安全组,只限制搜索查询为这两个示例的安全组。您想知道LDAP过滤器是什么吗?了解有关LDAP过滤器的所有信息。
查找分发组
使用PowerShell列出活动目录组(分发),其中排除了安全组,使用这两个示例。
查找用户的组成员资格,使用Get-ADPrincipalGroupMembership
请注意,此命令需要访问全局目录。
在组织单位中查找组,不包括任何子组织单位
通过使用SearchBase
参数,以这两个示例限制搜索范围为单个组织单位,进行细化搜索。
在组织单位中查找组,包括任何子组织单位
需要在子组织单位中查找所有组吗?使用SearchScope
为SubTree
。
摘要
这就结束了我们基于示例的使用PowerShell管理AD组的演示。在您的组织中尝试其中一些,并开始自动化吧!