使用ActiveDirectory PowerShell模块,您可以使用Get-AdGroup查询AD组,添加、更新和删除组和组成员。在本博客文章中,您将学习一些关于Active Directory组PowerShell cmdlet的知识,并提供大量示例供参考。
Active Directory组Cmdlet
安装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將成員添加到群組
使用PowerShell將用戶添加到Active Directory群組可以使用Add-AdGroupMember
命令或Add-ADPrincipalGroupMembership
命令。
此命令將群組指定為Identity。
此命令將AD主體指定為Identity。
將文本寫入組的 Notes
屬性,使用 Set-AdGroup
命令。在 ADUC 中,標簽為 Notes 的字段對應於從 Get-AdGroup
返回的 Info
屬性。
首先找到要更改的組,設置 Info
屬性,然後使用 Set-AdGroup
將更改提交到 AD。
使用 Remove-ADGroupMember
命令來刪除組成員。與所有 PowerShell 命令一樣,您可以使用 Confirm
參數在進行更改之前進行提示。這種行為也適用於 Remove-AdGroupMember 和 Remove-ADPrincipalGroupMembership 命令。
您可以在下面的代碼中刪除組成員而不進行確認。
或者您可以選擇使用 Confirm
參數進行確認,然後刪除組成員。
使用 Remove-ADGroup
命令刪除組。您可以選擇不進行確認或者使用確認進行刪除。
使用 Rename-ADObject
命令重命名組。您可以使用一條命令使用 Rename-ADObject 來重命名組。
使用 Get-ADGroup
命令獲取組的數量。您需要通過 Get-AdGroup
獲取的組的總數量嗎?使用 Count
屬性。
使用 Get-ADGroup
命令查找具有管理員的組。使用 Get-AdGroup
和精心設計的 LDAP 過濾器過濾具有分配的管理員的所有組。
這方面沒有對應的 PowerShell 過濾器。
使用Get-ADGroup命令找到特定用户管理的群组
提升您的筛选技能,使用PowerShell筛选器或LDAP筛选器找到特定用户管理的所有群组。
使用Set-ADGroup命令设置群组的管理者
在ADUC中的“Managed By”选项卡允许您指定负责群组成员资格的责任人。这并不意味着管理者可以自动更改群组的成员资格。为了实现这一点,需要更改有关所讨论的群组的“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密碼列表,找到在您的Active Directory中外洩和不安全的密碼。
查找所有安全組
使用PowerShell列出Active Directory中的所有安全組,只限定搜索查詢中包含以下兩個示例的安全組。您想知道LDAP過濾器是什麼嗎?了解有關LDAP過濾器的全部內容。
查找分發組
使用以下兩個示例,使用PowerShell列出Active Directory組(分發組),並排除安全組。
使用Get-ADPrincipalGroupMembership查找用戶的組成員資格
請注意,此命令需要訪問全域目錄。
查找OU中的組,不包括任何子OU
使用SearchBase
參數進行細分,只將搜索限制在單個OU中,以下是兩個示例。
查找OU中的組,包括任何子OU
您需要在子OU中查找所有組嗎?將SearchScope
設置為SubTree
。
總結
這就是我們用示例演示使用PowerShell管理AD組的演示。在您的組織中嘗試使用其中幾個示例,開始自動化吧!