Войдите в службу power bi онлайн (без вывода сообщений), используя powershell - PullRequest
0 голосов
/ 11 февраля 2019

Я хотел бы войти в службу Power BI Online и удалить строки из набора данных с помощью REST API.У меня есть остальная часть кода, но логин, кажется, не работает.Это то, что я пытался.Может кто-то помочь мне, пожалуйста?Спасибо!

$pbiUsername = "abc.xyz@xxx.com"
$pbiPassword = "Password"
$clientId = "a81b2cc1-4c97-2323-bal4-eeb21c4c6e46"

$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

Ответы [ 2 ]

0 голосов
/ 04 августа 2019

Поскольку PowerBI теперь активировал принципала обслуживания , вам не нужно беспокоиться об имени пользователя и пароле, и что более важно, вы НЕ НУЖНЫ ПРО Лицензии

используя сервис-принципала, теперь вы можете войти в систему без всплывающего окна, а также имя пользователя, пароль

$applicationId = "xxxxxxxx";
$securePassword = "xxxxxx" | ConvertTo-SecureString -AsPlainText -Force
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $applicationId, $securePassword
Connect-PowerBIServiceAccount -ServicePrincipal -Credential $credential -TenantId "xxxx"
0 голосов
/ 11 февраля 2019

«Похоже, что вход в систему не работает» не дает нам достаточной информации, чтобы подсказать вам, в чем проблема.

Я рекомендую вам использовать официальные командлеты Microsoft Power BI для выполнения подобных задач.Это имеет большое преимущество - вам не нужно регистрировать приложение, чтобы использовать его.Вот как будет выглядеть ваш код в этом случае:

Import-Module MicrosoftPowerBIMgmt
Import-Module MicrosoftPowerBIMgmt.Profile

$password = "Password" | ConvertTo-SecureString -asPlainText -Force
$username = "abc.xyz@xxx.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/tables/xxxxxx/rows' -Method Delete

Disconnect-PowerBIServiceAccount
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...