powershell PowerBI API获取所有报告-联系所有者:我只能看到我的SPN具有访问权限的信息或工作区报告

5lwkijsr  于 2023-05-17  发布在  Shell
关注(0)|答案(1)|浏览(163)

在微软网站和示例脚本中搜索了几个小时后,我冒了一个险。有没有人熟悉:
https://wabi-us-north-central-d-primary-redirect.analysis.windows.net/metadata/reports/$reportId/contacts
我希望使用它来获取工作区中的所有报告。--> Contact owner infos.
我能够让它与2个APIS一起工作

Invoke-PowerBIRestMethod -Verbose -Url "https://wabi-us-north-central-d-primary-redirect.analysis.windows.net/metadata/reports/$reported/" -Method Get
Invoke-PowerBIRestMethod -Verbose -Url "https://wabi-us-north-central-d-primary-redirect.analysis.windows.net/metadata/reports/$reportId/contacts" -Method Get

我遇到的问题是,我只能获得我所在的工作区报告。我确实有一个SPN,它拥有PowerBi服务的所有API权限,也有Tenant.ReadAll,但没有成功。
如果有人能更进一步呢?谢谢!

u5rb5r59

u5rb5r591#

我创建了一个Azure AD应用程序并授予API权限,如下所示:

现在,请确保将SPN添加为组成员

启用**Allow service principals to use read-only admin APIs**在PowerBi管理门户添加安全组

要解决此问题,请尝试分配**Workspace.ReadAll**以获得对所有工作区的所有访问权限。

Invoke-PowerBIRestMethod -Url https://api.powerbi.com/v1.0/myorg/admin/reports -Method Get 

Invoke-PowerBIRestMethod -Verbose -Url "http://xxx-redirect.analysis.windows.net/v1.0/myorg/admin/metadata/reports" -Method Get

然后尝试对联系人执行相同的操作,

Invoke-PowerBIRestMethod -Verbose -Url "https://xxx/metadata/reports/$reportId/contacts" -Method Get
  • 如果问题仍然存在 ,获取所有workspaces-reports时,为SPN分配*Report.Read.All * API权限。
  • 您还可以尝试将**Power BI Administrator**角色分配给Azure AD应用程序,如下所示:

相关问题