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

如何借助Power BI REST API获取各Power BI应用的用户权限列表?

获取Power BI应用的授权用户列表

你说得对,Get Apps端点确实只返回应用的基本元数据(比如名称、发布者、更新时间),不会包含任何用户权限信息。要获取每个Power BI应用的授权用户/组列表,你需要使用**Get App Users**这个专门的REST API端点,它可以针对单个应用ID返回所有有权访问该应用的主体信息。

具体步骤

1. 使用正确的API端点

针对每个应用,调用以下端点:

GET https://api.powerbi.com/v1.0/myorg/apps/{appId}/users

其中{appId}是你从Get Apps端点获取到的每个应用的唯一ID(比如示例中的f089354e-8366-4e18-aea3-4cb4a3a50b48)。

2. PowerShell代码示例

结合你已有的代码,这里是完整的遍历所有应用并获取用户列表的脚本:

# 登录Power BI服务
Login-PowerBI

# 获取域内所有已安装的应用
$apps = Invoke-PowerBIRestMethod -Url "https://api.powerbi.com/v1.0/myorg/apps" -Method Get | ConvertFrom-Json

# 遍历每个应用,获取对应的授权用户
foreach ($app in $apps.value) {
    Write-Host "=== 应用:$($app.name) (ID: $($app.id)) ==="
    
    # 调用Get App Users端点
    try {
        $appUsers = Invoke-PowerBIRestMethod -Url "https://api.powerbi.com/v1.0/myorg/apps/$($app.id)/users" -Method Get | ConvertFrom-Json
        
        if ($appUsers.value.Count -gt 0) {
            Write-Host "授权用户/组列表:"
            $appUsers.value | Format-Table displayName, emailAddress, accessRight, groupId -AutoSize
        } else {
            Write-Host "该应用暂无任何授权用户或组。"
        }
    } catch {
        Write-Warning "获取应用 '$($app.name)' 的用户列表失败:$($_.Exception.Message)"
    }
    
    Write-Host "`n"
}

3. 返回结果说明

调用Get App Users后返回的用户数据包含以下关键字段:

  • displayName:用户或组的显示名称
  • emailAddress:用户的邮箱地址(组的话此字段为空)
  • accessRight:用户的权限级别,常见值为Admin、Member、Viewer
  • groupId:如果是组授权,此字段为组的唯一ID(用户的话此字段为空)

注意事项

  • 权限要求:执行此脚本的账号需要拥有Workspace.Read.All或App.Read.All的Power BI API权限,否则会返回权限不足的错误。
  • 组织级共享应用:如果应用是共享给整个组织的,Get App Users端点会返回一个特殊的条目(displayName为"Entire Organization"),代表所有组织内用户都有权访问该应用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:04:56