Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more

v-stephen-msft

通过Powershell获取数据集列表

场景:
使用PowerShell获取数据集列表

我们可以使用 PowerShell 从 Power BI 服务中获取许多内容,例如工作区列表、数据集列表、报告列表等。此外,如果我们将 PowerShell 和 Rest API 结合起来,我们可以更简单地获取上述内容。有关更多信息,请参阅以下链接。

Working with PowerShell in Power BI | Microsoft Power BI 博客 | Microsoft Power BI

用于嵌入式分析和自动化的 Power BI REST API - Power BI REST API | Microsoft Learn

准备工作:

 

1.运行 PowerShell ISE

首先,以管理员身份启动 PowerShell ISE。Windows PowerShell 集成脚本环境 (ISE) 是 Windows PowerShell 的主机应用程序。在ISE中,您可以在单个基于Windows的图形用户界面中运行命令并编写、测试和调试脚本。

 

vstephenmsft_11-1725001445614.png

 

2.安装对应的PowerShell模块。

其次,为了管理与Power BI服务的连接,我们需要安装“MicrosoftPowerBIMgmt”。我们可以使用PowerShell ISE的可视化界面来添加此模块,也可以使用命令进行添加。请参阅以下链接

Power BI Cmdlet 参考 | Microsoft Learn

 

vstephenmsft_12-1725001452277.pngvstephenmsft_13-1725001458690.png


下载模块

vstephenmsft_14-1725001465214.png

 

以上脚本说明:

我们需要做的第一步是使用“Connect-PowerBIServiceAccount”命令连接到Power BI Service,然后使用“Get-PowerBIWorkspace”命令获取 Power BI 服务上的工作区信息,并将其分配给变量“Workspaces”。

 

Connect-PowerBIServiceAccount

$Workspaces = Get-PowerBIWorkspace –Al

 

其次,我们需要使用函数 “ForEach()” 来遍历参数 “$Workspaces” 和 “Get-PowerBIDataset -WorkspaceId $workspace。Id“,然后在相应的 Workspaces 中输出数据集列表。

 

ForEach ($workspace in $Workspaces)

{

ForEach ($dataset in (Get-PowerBIDataset -WorkspaceId $workspace.Id))

{

[pscustomobject]@{

WorkspaceName = $Workspace.Name

WorkspaceID = $workspace.Id

DatasetName = $dataset.Name

DatasetID = $dataset.Id

}

}

}

 

最后,将参数“$Datasets”的结果导出到本地.csv文件,并断开当前连接。

$Dir = "C:\Users\lionelch\Desktop\Sampledata\MyWorkspace.csv"

$DataSets | Export-Csv $Dir -NoTypeInformation -Encoding UTF8

Disconnect-PowerBIServiceAccount

 

vstephenmsft_17-1725001536860.png

vstephenmsft_18-1725001558765.png

 

2.在 PowerShell 中获取工作区和数据集的列表。

 

REST APIs 是应用程序接口 (API) 的一种架构样式,它使用 HTTP 请求来访问和使用数据。该数据可用于 GET、PUT、POST 和 DELETE 数据类型,这些数据类型是指读取、更新、创建和删除与资源有关的操作。对于 Power BI 服务,Microsoft 官方提供了许多 REST API 供开发人员使用。

Connect-PowerBIServiceAccount

$Workspace = Get-PowerBIWorkspace –All

ForEach($Workspace in $Workspace)

{

$Url = ' https://api.powerbi.com/v1.0/myorg/groups/'+ $Workspace.Id + '/datasets'

Invoke-PowerBIRestMethod -Url $Url -Method Get

}

Disconnect-PowerBIServiceAccount

 

以上脚本说明:

 

这里我们使用“获取数据集 API”。首先,我们仍然需要连接到 Power BI 服务,然后使用“Get-PowerBIWorkspace”命令获取工作区的数据并将其分配给参数“$Workspace”。

Connect-PowerBIServiceAccount

$Workspace = Get-PowerBIWorkspace –All

其次也是最重要的一点,我们需要使用“Invoke-PowerBIRestMethod”命令来访问 API 并返回 JSON 信息。请参阅下面的链接。

Invoke-PowerBIRestMethod (MicrosoftPowerBIMgmt.Profile) | Microsoft Learn

$Url = ' https://api.powerbi.com/v1.0/myorg/groups/'+ $Workspace.Id + '/datasets'

Invoke-PowerBIRestMethod -Url $Url -Method Get

 

最终结果:

vstephenmsft_19-1725001948291.png

总结:

以上内容介绍了如何使用PowerShell连接Power BI服务,如何通过命令代码获取Power BI服务中的内容,以及如何在PowerShell中使用Rest API。这些只是基本内容。事实上,PowerShell具有更丰富的功能,包括实现报表刷新、日志监控以及实现某些自动化功能。最后但并非最不重要的一点是,Power BI REST API 有一些限制,有关详细信息,请参阅此文档。


用于嵌入式分析和自动化的 Power BI REST API - Power BI REST API | Microsoft Learn