如何用PowerShell获取PIM分配的Azure AD组合格及活跃成员?
解决Azure AD组PIM合格/活跃成员查询结果过多的问题
问题原因
Get-AzureADMSPrivilegedRoleAssignment命令默认会返回所有Azure AD内置角色的分配记录,你指定的ResourceId是组ID,但该命令在aadRoles provider下的ResourceId参数对应的是Azure AD租户或组的角色范围,并非直接筛选组的成员分配,因此会返回大量无关的角色分配数据。
正确查询方案
要精准获取目标组的PIM合格(eligible)和活跃(active)成员,需针对组的成员角色进行定向筛选:
1. 明确组角色ID
Azure AD中,组的成员角色固定ID为62e90394-69f5-4237-9190-012177145e10;若需查询组所有者,对应ID为f2ef992c-3afb-46b9-b7cf-a126ee74c451。
2. 查询合格成员
Get-AzureADMSPrivilegedRoleAssignment -ProviderId "aadGroups" -ResourceId "<groupID>" -Filter "roleDefinitionId eq '62e90394-69f5-4237-9190-012177145e10' and assignmentState eq 'Eligible'"
3. 查询活跃成员
Get-AzureADMSPrivilegedRoleAssignment -ProviderId "aadGroups" -ResourceId "<groupID>" -Filter "roleDefinitionId eq '62e90394-69f5-4237-9190-012177145e10' and assignmentState eq 'Active'"
4. 一次性获取两种状态成员
Get-AzureADMSPrivilegedRoleAssignment -ProviderId "aadGroups" -ResourceId "<groupID>" -Filter "roleDefinitionId eq '62e90394-69f5-4237-9190-012177145e10' and (assignmentState eq 'Eligible' or assignmentState eq 'Active')"
核心调整说明
- 将
ProviderId从aadRoles改为aadGroups:组的成员身份分配属于组特权管理范畴,而非Azure AD全局角色管理。 - 指定
roleDefinitionId:精准锁定组的成员角色,避免返回其他无关角色的分配记录。 - 添加
assignmentState筛选:仅保留目标状态的分配结果,过滤无效数据。
内容的提问来源于stack exchange,提问作者badsector
相关产品推荐
相关产品推荐

