如何使用 Get-ADPrincipalGroupMembership 查找用户所属的所有组

Get-ADPrincipalGroupMembership PowerShell cmdlet 可帮助检索指定用户、计算机或服务帐户直接和间接(嵌套组)所属的所有 AD 组。这对于合规、故障排除和安全审计至关重要,因为您可以快速识别配置错误并确保最小权限。本文展示了执行此任务的三种方法:

  • ADManager Plus
  • PowerShell
 

使用 ADManager Plus 获取 AD 用户组成员身份

ADManager Plus 提供基于 GUI 的方法来获取 AD 用户组成员列表。

  1. 登录 ADManager Plus 并导航至 Reports tab > User Reports
  2. Nested Reports 下,选择 Groups for Users
  3. 选择您的域并点击 + 以选择首选用户。输入用户名,选择后点击 OK。要批量添加多个用户,请点击 CSV tab 并导入包含用户列表的 CSV 文件。
  4. 点击 Generate.
使用 ADManager Plus 生成用户在 Active Directory 中所属所有组的报告
 
 

选择是否包含嵌套组

 
 

将报告导出为 CSV、PDF、XLS、HTML、XLSX 和 CSVDE 等不同格式

使用 PowerShell 获取用户所属的 AD 组列表

步骤 1: 以管理员身份打开 PowerShell ISE。

步骤 2: 如果未安装 AD 模块,请下载适合您操作系统的 RSAT 包并运行以下命令以激活它。

Import-Module ActiveDirectory

步骤 3: 运行以下命令以获取用户的 AD 组成员身份。此命令返回用户所属的所有组对象,包括 DistinguishedName、GroupCategory、GroupScope、Name、ObjectClass 和 SID 等属性。将 "username" 替换为用户的登录名。

Get-ADPrincipalGroupMembership -Identity "username"

使用 ADUC 获取 AD 用户组成员身份

AD Users and Computers (ADUC) 是查找组成员身份的常用方法。请注意,这仅列出用户直接所属的组。

  1. 打开 ADUC。
  2. 右键点击您首选的用户帐户并选择 Properties
  3. 选择 Member Of 选项卡以查看用户直接所属的所有组。

使用 Get-ADPrincipalGroupMembership 的示例用例

示例 1:显示用户 "james" 的组名

该命令将输出传递并仅显示组名(而非完整组详细信息)。

Get-ADPrincipalGroupMembership -Identity "james" | Select-Object Name

示例 2:将组名导出为 CSV

将组名列表保存为 CSV 文件,用于报告或文档。

Get-ADPrincipalGroupMembership -Identity "james" | Select-Object Name | Export-Csv -Path "C:\James_Groups.csv" -NoTypeInformation

示例 3:列出带描述的组

检索用户所属的所有组列表,并显示其名称和描述以提供更好的上下文。

Get-ADPrincipalGroupMembership -Identity "james" | Get-ADGroup -Properties Description | Select-Object Name, Description

示例 4:获取 AD LDS 实例中用户的组成员身份

查询 AD Lightweight Directory Services (AD LDS) 实例以列出用户的组成员身份。

PS C:\> Get-ADPrincipalGroupMembership -Server localhost:60000 -Identity "CN=David,DC=AppNC" -Partition "DC=AppNC"

示例 5:获取 Administrator 的组成员身份

检索内置 Administrator 帐户所属的所有组。

PS C:\> Get-ADPrincipalGroupMembership -Identity Administrator

示例 6:获取资源域中帐户的组成员身份

显示指定资源域和分区中用户的组成员身份。

PS C:\> Get-ADPrincipalGroupMembership -Identity Administrator -ResourceContextServer Child.company.com -ResourceContextPartition "DC=company,DC=com"

示例 7:以表格形式查看组成员信息

以表格格式输出用户的组成员身份,包括名称和描述。

Get-ADPrincipalGroupMembership -Identity administrator | Get-ADGroup -Properties Description | Select Name, Description

支持的参数

以下是可与 Get-ADPrincipalGroupMembership cmdlet 一起使用的一些参数:

参数 描述
-Identity 指定要检查成员身份的用户、组、计算机或服务帐户。
-AuthType 指定身份验证方法(Negotiate 或 Basic)。
-Credential 使用备用凭据执行操作。
-Partition 在指定的 AD 分区中搜索组成员身份。
-Server 指定要连接的域控制器或 AD DS 实例。
-ResourceContextPartition 用于搜索跨域组成员资格。
-ResourceContextServer 用于搜索远程域中的组成员资格。

使用本地工具获取组成员资格的限制

虽然功能强大,但仅依赖 PowerShell 和 ADUC 进行大量用户报告可能会遇到挑战:

  • PowerShell 命令在不同用例和场景下可能变得复杂。
  • IT 管理员可能会花费大量时间排查错误,影响工作效率。
  • 委派可能变得复杂,因为技术人员需要提升权限。
  • ADUC 一次仅提供单个用户的结果,且没有批量检查选项。
  • ADUC 仅显示直接组成员资格,不显示嵌套组。

使用 ADManager Plus 获取组成员资格的亮点

ADManager Plus 弥合了强大 AD 报告与易用性之间的差距。以下是它为何成为许多 IT 团队更佳选择的原因:

  • 只需几次点击即可生成 详细的 AD 组成员报告
  • 查看嵌套组成员,并按组类型、范围或 OU 过滤,无需脚本。
  • 自定义并安排报告,自动发送给利益相关者或审计人员。
  • 直接从报告中执行 AD 用户管理 操作,如移除或转移成员。
  • 以 CSV、PDF、XLS 或 HTML 等多种格式 导出 AD 报告,便于共享和合规。
  • 使用直观的 GUI 基础 批量用户和组管理 工具,避免复杂的 PowerShell 脚本。

使用 ADManager Plus 简化组管理和报告

常见问题解答

1. 如何使用 powershell 获取用户所属的 AD 组列表?

Get-ADPrincipalGroupMembership PowerShell cmdlet 可用于列出用户所属的所有 AD 组。运行以下命令,将“username”替换为用户登录名:

Get-ADPrincipalGroupMembership -Identity "username"

或者,可以使用无脚本工具如 ManageEngine ADManager Plus 列出相同内容,并附带 多种导出格式、调度和直接在报告中执行管理操作等额外优势。

2. 如何检查用户是否是 AD 中某个组的成员?

您可以使用 Get-ADUser 并结合对 MemberOf 属性的筛选来检查用户是否属于特定组:

$user = "username"
(Get-ADUser -Identity $user -Properties MemberOf).MemberOf -contains "CN=GroupName,OU=Groups,DC=domain,DC=com"

也可以使用 Get-ADPrincipalGroupMembership cmdlet 来完成,这提供了更全面的方法:

$user = "username"
$groupName = "GroupName"
$groups = Get-ADPrincipalGroupMembership -Identity $user | Select-Object -ExpandProperty Name
$groups -contains $groupName

如果您偏好无脚本方法,请查看 ADManager Plus 与 PowerShell 在检查组成员资格方面的比较

 
  • 使用 ADManager Plus 获取 AD 用户组成员身份
  • 使用 PowerShell 获取用户所属的 AD 组列表
  • 使用 ADUC 获取 AD 用户组成员身份
  • 支持的参数
  • 使用本地工具获取组成员资格的限制
  • 使用 ADManager Plus 获取组成员资格的亮点
  • 常见问题解答
Active Directory管理与报告的一站式解决方案
电子邮件下载链接 Email the ADManager Plus download link