我有一个连接到仪表板的数据源,该数据源需要刷新而无需实际打开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
来获取令牌,但是还有其他方法吗。
答案 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