适用于 Windows PowerShell 和 PowerShell Core 的 Microsoft Power BI Cmdlet
欢迎使用 Microsoft Power BI 的 PowerShell 参考。 在此处可以找到面向 Power BI 的 PowerShell 模块的资源。
PowerShell 模块
下面是本参考中介绍的 Power BI PowerShell 模块的表。
说明 | 模块名称 | PowerShell 库链接 |
---|---|---|
Power BI Cmdlet 的汇总模块 | MicrosoftPowerBIMgmt | |
Power BI Cmdlet 的管理员模块 | MicrosoftPowerBIMgmt.Admin | |
Power BI Cmdlet 的容量模块 | MicrosoftPowerBIMgmt.Capacities | |
Power BI Cmdlet 的数据模块 | MicrosoftPowerBIMgmt.Data | |
Power BI Cmdlet 的配置文件模块 | MicrosoftPowerBIMgmt.Profile | |
Power BI 的报表模块 | MicrosoftPowerBIMgmt.Reports | |
Power BI 的工作区模块 | 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 支持站点。