适用于 Windows PowerShell 和 PowerShell Core 的 Microsoft Power BI Cmdlet

欢迎使用 Microsoft Power BI 的 PowerShell 参考。 在此处可以找到面向 Power BI 的 PowerShell 模块的资源。

PowerShell 模块

下面是本参考中介绍的 Power BI PowerShell 模块的表。

说明 模块名称 PowerShell 库链接
Power BI Cmdlet 的汇总模块 MicrosoftPowerBIMgmt MicrosoftPowerBIMgmt
Power BI Cmdlet 的管理员模块 MicrosoftPowerBIMgmt.Admin MicrosoftPowerBIMgmt。管理员
Power BI Cmdlet 的容量模块 MicrosoftPowerBIMgmt.Capacities MicrosoftPowerBIMgmt.Capacities
Power BI Cmdlet 的数据模块 MicrosoftPowerBIMgmt.Data MicrosoftPowerBIMgmt.Data
Power BI Cmdlet 的配置文件模块 MicrosoftPowerBIMgmt.Profile MicrosoftPowerBIMgmt.Profile
Power BI 的报表模块 MicrosoftPowerBIMgmt.Reports MicrosoftPowerBIMgmt.Reports
Power BI 的工作区模块 MicrosoftPowerBIMgmt.Workspaces MicrosoftPowerBIMgmt.Workspaces

支持的环境和 PowerShell 版本

  • Windows PowerShell v3.0 及更高版本与 .NET 4.7.1 或更高版本。
  • PowerShell Core (v6) 以及 PowerShell Core 支持的任何 OS 平台上。

安装

该 cmdlet 可在PowerShell 库上使用,并且可以安装在提升的 PowerShell 会话中:

Install-Module -Name MicrosoftPowerBIMgmt

(可选)可以根据需求) 而不是汇总模块来安装单个模块 (,例如,如果只想使用工作区模块:

Install-Module -Name MicrosoftPowerBIMgmt.Workspaces

如果有早期版本,可以通过运行以下命令更新到最新版本:

Update-Module -Name MicrosoftPowerBIMgmt

卸载

如果要卸载所有 Power BI PowerShell cmdlet,请在提升的 PowerShell 会话中运行以下命令:

Get-Module MicrosoftPowerBIMgmt* -ListAvailable | Uninstall-Module -Force

使用情况

与 Power BI 实体交互的 cmdlet 支持两个范围:

  • 个人用于访问属于当前用户的实体。
  • 组织用于访问整个公司的实体。 仅允许使用 Power BI 租户管理员。

如果 cmdlet 上不存在 -Scope 参数,则实体不支持管理 API。

登录 Power BI

Connect-PowerBIServiceAccount   # or use aliases: Login-PowerBIServiceAccount, Login-PowerBI

获取工作区

为用户获取工作区。 默认情况下 (,即没有 -First 参数) 它显示分配给用户的前 100 个工作区:

Get-PowerBIWorkspace

使用 -All 参数显示分配给用户的所有工作区:

Get-PowerBIWorkspace -All

如果你是租户管理员,可以通过添加 -Scope Organization

Get-PowerBIWorkspace -Scope Organization -All

更新工作区

更新用户工作区的名称或说明:

Set-PowerBIWorkspace -Scope Organization -Id "3244f1c1-01cf-457f-9383-6035e4950fdc" -Name "Test Name" -Description "Test Description"

将新用户添加到工作区

将用户添加到给定工作区:

Add-PowerBIWorkspaceUser -Scope Organization -Id 3244f1c1-01cf-457f-9383-6035e4950fdc -UserEmailAddress john@contoso.com -AccessRight Admin

从给定工作区中删除用户

从给定工作区中删除用户的权限:

Remove-PowerBIWorkspaceUser -Scope Organization -Id 3244f1c1-01cf-457f-9383-6035e4950fdc -UserEmailAddress john@contoso.com

获取工作区迁移状态

获取 Power BI 工作区迁移状态:

Get-PowerBIWorkspaceMigrationStatus -Id 038f9a64-1fcd-42f2-957a-13a63b3d3235

还原工作区

以租户管理员身份查看已删除的工作区:

Get-PowerBIWorkspace -Scope Organization -Deleted -All

还原已删除的工作区:

Restore-PowerBIWorkspace -Id "3244f1c1-01cf-457f-9383-6035e4950fdc" -RestoredName "TestWorkspace" -AdminEmailAddress "john@contoso.com"

恢复孤立工作区

没有分配的管理员时,工作区将变得孤立。 如果你是租户管理员,请运行以下命令查看所有孤立工作区:

Get-PowerBIWorkspace -Scope Organization -Orphaned -All

若要更正此问题,请使用:

Add-PowerBIWorkspaceUser -Scope Organization -Id f2a0fae5-1c37-4ee6-97da-c9d31851fe17 -UserPrincipalName 'john@contoso.com' -AccessRight Admin

获取报表

获取用户的所有报表:

Get-PowerBIReport

如果你是租户管理员,可以使用分配 -Scope Organization来查看租户中的所有报表:

Get-PowerBIReport -Scope Organization

获取仪表板

获取用户的仪表板:

Get-PowerBIDashboard

如果你是租户管理员,可以通过添加 -Scope Organization

Get-PowerBIDashboard -Scope Organization

获取磁贴

获取仪表板中的磁贴:

Get-PowerBITile -DashboardId 9a58d5e5-61bc-447c-86c4-e221128b1c99

获取导入

获取 Power BI 导入:

Get-PowerBIImport

创建报表

通过上传 *.pbix 文件在 Power BI 中创建报表:

New-PowerBIReport -Path .\newReport.pbix -Name 'New Report'

默认情况下,报表放置在用户的“我的工作区”中。 若要放置在其他工作区中,请使用 -WorkspaceId-Workspace 参数:

New-PowerBIReport -Path .\newReport.pbix -Name 'New Report' -WorkspaceId f95755a1-950c-46bd-a912-5aab4012a06d

导出报表

将 Power BI 报表导出到 *.pbix 文件:

Export-PowerBIReport -Id b48c088c-6f4e-4b7a-b015-d844ab534b2a -OutFile .\exportedReport.pbix

如果工作区存在于“我的工作区”外部,请使用 WorkspaceId-Workspace 参数进行导出:

Export-PowerBIReport -Id b48c088c-6f4e-4b7a-b015-d844ab534b2a -OutFile .\exportedReport.pbix -WorkspaceId 3bdd9735-0ab5-4f21-bd5d-87e7f1d7fb84

获取数据集

获取 Power BI 数据集:

Get-PowerBIDataset

更新数据集存储模式

将 Power BI 数据集设置为将高级文件用于存储模式:

Set-PowerBIDataset -Id 038f9a64-1fcd-42f2-957a-13a63b3d3235 -TargetStorageMode PremiumFiles

获取数据源

获取数据集的 Power BI 数据源:

Get-PowerBIDatasource -DatasetId 65d7d7e5-8af0-4e94-b20b-50a882ae15e1

获取表

获取数据集中包含的 Power BI 表:

Get-PowerBITable -DatasetId 65d7d7e5-8af0-4e94-b20b-50a882ae15e1

调用 Power BI REST API

对于缺少相应 cmdlet 的Power BI API,可以重复使用经过身份验证的会话Connect-PowerBIServiceAccount来发出自定义 REST 请求:

Invoke-PowerBIRestMethod -Url 'reports/4eb4c303-d5ac-4a2d-bf1e-39b35075d983/Clone' -Method Post -Body ([pscustomobject]@{name='Cloned report'; targetModelId='adf823b5-a0de-4b9f-bcce-b17d774d2961'; targetWorkspaceId='45ee15a7-0e8e-45b0-8111-ea304ada8d7d'} | ConvertTo-Json -Depth 2 -Compress)

如果要在 PowerShell 外部使用经过身份验证的会话,请使用以下命令获取访问令牌:

Get-PowerBIAccessToken -AsString

排查错误

若要获取从 cmdlet 返回的错误的详细信息,请使用:

Resolve-PowerBIError -Last

此信息可用于打开 Power BI 的支持票证。

问题和反馈

如果发现任何 bug 或希望看到为 Power BI 的 PowerShell Cmdlet 实现的某些功能,请 提出问题

如果你的问题不仅仅是 PowerShell cmdlet,请将反馈提交到Power BI 社区或官方 Power BI 支持站点。