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

PowerShell调用MS Graph API获取报告缺Reports.Read.All权限如何解决

问题根因

你在Graph Explorer中授予的Reports.Read.All权限仅作用于Graph Explorer专属应用,本地PowerShell通过Az模块获取Token时,默认使用微软内置的「Azure PowerShell」企业应用,两个应用权限相互独立,因此Token中缺少所需权限导致调用失败。

解决方案

方案1:改用Microsoft Graph PowerShell SDK(推荐,复杂度最低)

  • 首先安装对应模块:
Install-Module Microsoft.Graph.Reports -Scope CurrentUser -Force
  • 连接Graph并指定所需权限:
# 首次运行会弹出登录窗口,登录后同意权限申请即可,需要租户管理员预先授予该权限的管理员同意
Connect-MgGraph -Scopes "Reports.Read.All"
  • 直接调用官方封装的cmdlet获取数据:
# 获取凭据用户注册详情数据
Get-MgReportCredentialUserRegistrationDetail -All

如果需要直接调用beta版接口也可以用通用请求方法:

Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/beta/reports/credentialUserRegistrationDetails"

方案2:保留现有Az模块脚本逻辑

需要先由租户管理员完成以下权限配置:

  1. 登录Azure门户,进入「Azure Active Directory」>「企业应用」>「所有应用」
  2. 搜索客户端ID 1950a258-227b-4e69-a8d6-56280f147736,找到「Azure PowerShell」内置应用
  3. 进入「权限」页面,点击「添加权限」> 选择「Microsoft Graph」>「委托权限」
  4. 搜索并勾选Reports.Read.All权限,点击「授予管理员同意」完成配置
  5. 回到本地PowerShell,先断开现有Az连接再重新登录,指定Graph权限范围:
Disconnect-AzAccount
Connect-AzAccount -Scope "https://graph.microsoft.com/Reports.Read.All"

重新运行你现有脚本即可正常调用接口。

注意事项
  • Reports.Read.All属于高权限,必须由租户管理员完成同意配置,普通用户无法自行授予
  • 你当前调用的是beta版接口,接口行为可能发生变更,生产环境建议优先使用v1.0版本的对应接口

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 22:15:03