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

如何使用PowerShell获取Azure访问包中的资源角色及关联AAD组

解决访问包资源角色及关联AAD组查询空值问题

先明确你遇到空值的核心原因

你使用的Get-MgBetaEntitlementManagementAccessPackageResource命令是查询租户内所有可用于访问包的资源池,并非指定访问包已关联的资源,所以输入访问包ID自然返回空。另外要先确认两个前提:

  • 你的账号必须拥有权限管理管理员或目录所有者权限,且已执行Connect-MgGraph -Scopes "EntitlementManagement.Read.All"完成授权
  • 确保安装了Microsoft Graph Beta模块,因为权限管理的部分API仅在Beta分支开放:Install-Module Microsoft.Graph.Beta -Force

正确查询步骤

1. 获取目标访问包的资源角色关联

使用Get-MgBetaEntitlementManagementAccessPackageResourceRoleScope命令,直接指定访问包ID,就能拿到该访问包绑定的所有资源、角色和范围:

# 替换为你的访问包ID
$accessPackageId = "xxxx-xxxx-xxxx-xxxx"
$resourceBindings = Get-MgBetaEntitlementManagementAccessPackageResourceRoleScope -AccessPackageId $accessPackageId

2. 提取资源详情及关联AAD组

遍历返回的绑定信息,分别查询资源、角色,以及对应的AAD组(如果资源类型是组):

foreach ($binding in $resourceBindings) {
    # 获取资源基本信息
    $resource = Get-MgBetaEntitlementManagementAccessPackageResource -AccessPackageResourceId $binding.AccessPackageResourceId
    # 获取资源角色信息
    $role = Get-MgBetaEntitlementManagementAccessPackageResourceRole -AccessPackageResourceId $binding.AccessPackageResourceId -AccessPackageResourceRoleId $binding.AccessPackageResourceRoleId

    Write-Host "=== 资源信息 ==="
    Write-Host "名称: $($resource.DisplayName)"
    Write-Host "类型: $($resource.ResourceType)"
    Write-Host "关联角色: $($role.DisplayName)"

    # 若资源是AAD组,查询组详情
    if ($resource.ResourceType -eq "Group") {
        $aadGroup = Get-MgGroup -GroupId $resource.ResourceId
        Write-Host "关联AAD组: $($aadGroup.DisplayName) (ID: $resource.ResourceId)"
    }
    Write-Host "`n"
}

额外排查点

如果执行后仍无结果,去Azure门户的权限管理→访问包中确认目标访问包是否真的关联了资源,有可能是访问包本身未绑定任何资源导致返回空。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 11:30:08