You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PowerShell获取Azure中特定AppRole的用户与组分配信息

获取企业应用指定AppRole的用户/组分配

对应的PowerShell命令

门户中ManagedApplications//AppRoleAssignments对应的PowerShell命令是 Get-AzADAppRoleAssignment,通过该命令可直接查询应用的所有角色分配记录。

具体操作步骤

假设你已通过Get-AzADApplication获取目标企业应用对象(记为$app),且已知目标AppRole的ID(记为$targetAppRoleId),可按以下步骤获取分配该角色的用户和组:

  1. 精准筛选目标角色的分配记录
    直接通过Filter参数同时指定应用ID和AppRole ID,减少后续处理:

    # 替换为你的应用对象和目标AppRole ID
    $app = Get-AzADApplication -DisplayName "你的企业应用名称"
    $targetAppRoleId = "目标AppRole的ID值"
    
    # 获取所有分配了该AppRole的记录
    $targetAssignments = Get-AzADAppRoleAssignment -Filter "resourceId eq '$($app.ObjectId)' and appRoleId eq '$targetAppRoleId'"
    
  2. 区分并获取用户/组详情
    遍历筛选结果,根据PrincipalType字段区分用户和组,再获取对应的主体信息:

    foreach ($assignment in $targetAssignments) {
        switch ($assignment.PrincipalType) {
            "User" {
                $user = Get-AzADUser -ObjectId $assignment.PrincipalId
                Write-Output "用户: $($user.DisplayName) | UPN: $($user.UserPrincipalName)"
            }
            "Group" {
                $group = Get-AzADGroup -ObjectId $assignment.PrincipalId
                Write-Output "组: $($group.DisplayName) | 别名: $($group.MailNickname)"
            }
        }
    }
    

补充说明

  • 若你的Az模块版本较旧,Get-AzADAppRoleAssignment可能不支持复杂Filter,可先获取该应用的所有角色分配,再通过Where-Object筛选:
    $allAssignments = Get-AzADAppRoleAssignment -ResourceId $app.ObjectId
    $targetAssignments = $allAssignments | Where-Object { $_.AppRoleId -eq $targetAppRoleId }
    

内容的提问来源于stack exchange,提问作者wgemini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 15:03:21