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

Power BI连接Microsoft 365管理中心报错及用户许可列表获取求助

问题分析与解决方案

错误原因

你混淆了前端管理门户和API服务端点:Microsoft 365管理中心(admin.microsoft.com)是面向人工操作的网页后台,并非供程序调用的API接口。你在Power BI中选择Web API模式并填入密钥,但该门户根本不支持API密钥认证机制,也没有对应的密钥名称参数,因此触发了A web API key can only be specified when a web API key name is provided错误。

另外,你参考的Office 365管理API主要用于审计日志、告警推送等场景,获取用户许可信息更适合使用微软官方推荐的Microsoft Graph API统一接口。


正确的获取方法

方法1:通过Microsoft Graph API手动构建查询(适合有技术基础的用户)

  1. 在Power BI中点击「获取数据」>「空白查询」,进入Power Query编辑器。
  2. 打开「高级编辑器」,替换为以下M代码(需先在Azure AD注册应用,授予User.Read.All和Directory.Read.All权限,并由管理员完成权限同意):
    let
        Source = Json.Document(Web.Contents("https://graph.microsoft.com/v1.0/users?$select=id,displayName,userPrincipalName&$expand=assignedLicenses")),
        value = Source[value],
        #"转换为表" = Table.FromList(value, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
        #"展开用户信息" = Table.ExpandRecordColumn(#"转换为表", "Column1", {"displayName", "userPrincipalName", "assignedLicenses"}, {"显示名称", "用户主体名称", "已分配许可"}),
        #"展开许可列表" = Table.ExpandListColumn(#"展开用户信息", "已分配许可"),
        #"提取SKU ID" = Table.ExpandRecordColumn(#"展开许可列表", "已分配许可", {"skuId"}, {"SKU ID"}),
        #"匹配许可名称" = Table.AddColumn(#"提取SKU ID", "许可名称", each Json.Document(Web.Contents("https://graph.microsoft.com/v1.0/subscribedSkus/" & [SKU ID]))[skuPartNumber])
    in
        #"匹配许可名称"
    
  3. 首次运行时选择「OAuth2」认证方式,用拥有全局管理员权限的账号登录即可。

方法2:使用Power BI内置的Microsoft 365数据源(简单快捷)

直接在Power BI的「获取数据」搜索框中输入「Microsoft 365管理中心」,选择对应的数据源,登录后即可直接获取包含用户许可信息的数据集,无需手动编写API请求,适合非技术用户。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 09:35:03