Я использовал этот сценарий powershell для обновления набора данных в Power BI, который работал для меня, но проблема заключалась в том, что при запуске сценария всегда появлялось всплывающее окно для входа в мою учетную запись Power BI.Я действительно хочу знать, есть ли способ сделать сценарий автоматического входа для меня?Спасибо
скрипт: https://github.com/Azure-Samples/powerbi-powershell/blob/master/manageRefresh.ps1
С помощью следующего вы можете легко получить доступ к информации о группе:
$pbiUsername = "< USERNAME >" $pbiPassword = "< PASSWORD >" $clientId = "< CLIENT-ID >" $body = @{"resource" = "https://analysis.windows.net/powerbi/api"; "client_id" = $clientId; "grant_type" = "password"; "username" = $pbiUsername; "password" = $pbiPassword; "scope" = "openid" } $authUrl = "https://login.windows.net/common/oauth2/token/" $authResponse = Invoke-RestMethod -Uri $authUrl –Method POST -Body $body $headers = @{ "Content-Type" = "application/json"; "Authorization" = $authResponse.token_type + " " + $authResponse.access_token } $restURL = "https://api.powerbi.com/v1.0/myorg/groups" $restResponse = Invoke-RestMethod -Uri $restURL –Method GET -Headers $headers
Здесь clientId - это Id из «собственного» клиента AAD, созданного с использованием https://dev.powerbi.com/apps
Для отправкикоманда обновления использует URL-адреса:
Если набор данных находится в вашей рабочей области:
$datasetId = "DATASET-ID" $restUrl = "https://api.powerbi.com/v1.0/myorg/datasets/$datasetId/refreshes"
В противном случае, когда он находится в рабочей области группы:
$datasetId = "DATASET-ID" $groupId = "GROUP-ID" $restUrl = "https://api.powerbi.com/v1.0/myorg/groups/$groupId/datasets/$datasetId/refreshes"
Теперь отправьте работу на сервер powerBI:
$body = @{ "notifyOption"= "MailOnFailure" } $restResponse = Invoke-RestMethod -Uri $restUrl –Method POST -Headers $headers -Body $body
См. Также запись в блоге: https://blog.gbrueckl.at/2017/08/refresh-powerbi-datasets-powershell-azure-runbooks/