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

欢迎使用 Microsoft Power BI 的 PowerShell 参考。 在这里,你将找到面向 Power BI 的 PowerShell 模块的资源。

PowerShell 模块

下表列出了此参考中介绍的 Power BI PowerShell 模块。

DESCRIPTION 模块名称 PowerShell 库链接
Power BI Cmdlets 的汇总模块 暂无 MicrosoftPowerBIMgmt1.2.1111
Power BI Cmdlets 的管理模块 MicrosoftPowerBIMgmt.Admin Module MicrosoftPowerBIMgmt.Admin
Power BI Cmdlets 的容量模块 MicrosoftPowerBIMgmt.Capacities Module MicrosoftPowerBIMgmt.Capacities
Power BI Cmdlets 的数据模块 MicrosoftPowerBIMgmt.Data Module MicrosoftPowerBIMgmt.Data
Power BI Cmdlet 的配置文件模块 MicrosoftPowerBIMgmt.Profile Module MicrosoftPowerBIMgmt.配置文件
适用于 Power BI 的报表模块 MicrosoftPowerBIMgmt.Reports Module MicrosoftPowerBIMgmt.Reports
适用于 Power BI 的 Workspaces 模块 MicrosoftPowerBIMgmt.Workspaces Module MicrosoftPowerBIMgmt.Workspaces

支持的环境和 PowerShell 版本

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

安装

这些 cmdlet 在 PowerShell 库中提供,并且可以安装在提升的 PowerShell 会话中:

Install-Module -Name MicrosoftPowerBIMgmt

或者,你可以安装单个模块(根据你的需要)而不是 rollup 模块,例如,如果你只需要 Workspaces 模块:

Install-Module -Name MicrosoftPowerBIMgmt.Workspaces

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

Update-Module -Name MicrosoftPowerBIMgmt

卸载

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

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

用法

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

  • Individual 用于访问属于当前用户的实体。
  • Organization 用于访问整个公司的实体。 仅允许 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'

默认情况下,报表放置在用户的 My Workspace 中。 要放置在不同的工作区中,请使用 -WorkspaceId or -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

如果工作区存在于 My Workspace 之外,请使用 WorkspaceId or -Workspace 参数导出:

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

获取数据集

获取 Power BI 数据集:

Get-PowerBIDataset

更新数据集存储模式

将 Power BI 数据集设置为使用 Premium Files 作为存储模式:

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 的支持票证。

问题和反馈

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

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