Microsoft Power BI中的自定义数据刷新

时间:2019-08-22 09:47:57

标签: powershell powerbi

我有一个连接到仪表板的数据源,该数据源需要刷新而无需实际打开power bi帐户。目前,我能够从powershell promt中找出可以帮助我完成此任务的powershell脚本。

请求是这样的

Invoke-WebRequest -Uri "https://api.powerbi.com/v1.0/myorg/datasets/DATASET_ID/refreshes" -Method "POST" -Headers @{"Sec-Fetch-Mode"="cors"; "Authorization"="Bearer XXXXXXXXXXTOKENXXXXXXXX"} -ContentType "application/json;charset=UTF-8"

现在令牌在一段时间后过期,我再次需要打开power bi网站来获取新令牌。 有没有一种方法可以在本地生成令牌而无需实际打开网站?我尝试在PowerBI中使用Login-Powershell来获取令牌,但是还有其他方法吗。

2 个答案:

答案 0 :(得分:2)

您每次需要获取一个新令牌或从API获取刷新令牌。我已经测试过每次都能获得令牌,但我从未遇到任何问题。在这里检查我的代码以完成您的Powershell: https://github.com/ibarrau/PowerBi-code/blob/master/PowerShell/RefreshPowerBi.ps1

请记住,您始终可以安装本地数据网关来为您解决此问题。 https://docs.microsoft.com/en-us/power-bi/service-gateway-onprem

希望这会有所帮助。

答案 1 :(得分:1)

据我了解,您想使用PowerShell刷新数据集,但不提示输入凭据。在这种情况下,您可以将它们存储在脚本本身中,然后执行以下操作:

Import-Module MicrosoftPowerBIMgmt
Import-Module MicrosoftPowerBIMgmt.Profile

$password = "xxxxx" | ConvertTo-SecureString -asPlainText -Force
$username = "xxxxx@yyyyy.com" 
$credential = New-Object System.Management.Automation.PSCredential($username, $password)

Connect-PowerBIServiceAccount -Credential $credential

Invoke-PowerBIRestMethod -Url 'groups/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/datasets/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/refreshes' -Method Post

Disconnect-PowerBIServiceAccount