Forum Discussion
Power Shell Invoke-PowerBIRestMethod -Method Post failing
Hi,
I'm trying to create script that will refresh some datasets through Power BI API. I have registered App in Active Directory and gave it almost every permissions possible for Power BI Service (only missing ones are "Read and write all content in tenant" and "View all content in tenant"). I am the owner of the refreshed dataset and admin of Data Gateway it accesses.
If I put in my script cmdlet:
$urlrefresh = "groups/$groupID/datasets/$datasetID/refreshes"
Invoke-PowerBIRestMethod -Url $urlrefresh –Method GET
everything is working and script will retrieve list of refreshes, but if I'm trying to do the same with -Method POST, script fails on some kind of write error.
I'm assuming it must be some kind of permissions problem, but like I said, App is already having almost all of them.
Error message:
Invoke-PowerBIRestMethod : One or more errors occurred.
At line:2 char:1
+ Invoke-PowerBIRestMethod -Url $urlrefresh -Method Post –Verbose
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (Microsoft.Power...werBIRestMethod:InvokePowerBIRestMethod) [Invoke-PowerBIRestMethod], AggregateException
+ FullyQualifiedErrorId : One or more errors occurred.,Microsoft.PowerBI.Commands.Profile.InvokePowerBIRestMethod
10 Replies
- GilbertQSuper UserHi there
My understanding is that in order for the API to refresh it actually has to write data back into the dataset.
And that would appear as to why it is failing. I would suggest adding the permissions for read and write and see if the script then works.- AnonymousNot applicable
Hi Gilbert,
thanks for your reply. App is registered in AD with all permissions possible. Is there something different (perhaps on tetant level) that can override them?
- GilbertQSuper User
Hi there
I would suggest making sure at the top where it says"Application Permissions you got that set to what is shown below.
- mjbirrerFrequent Visitor
GilbertQ I know this is an old post, but i'm going throught he same thing...Everything is working fine except the Read All from Tenant. I am getting an error/alert that "Tenant.Read.All" is not granted for my organization. Is this something that i just need an O365 admin to approve? I'm only admin for PowerBI, so not sure what to do at this point.
- mjbirrerFrequent Visitor
I was the one that created it. These are the permissions I have added. Notice the warning on the tenant permission.
Here is the script i'm trying to run. Basically pull all workspaces and associated users. I can do this for my workspaces, but when i open it up to -Scope Organization, it fails.
Invoke-PowerBIRestMethod : One or more errors occurred.
At C:\Users\jeffrey.birrer\Documents\PowerBI\PowerBI_ExportContent_NEW.ps1:38 char:13
+ $wkpacc = Invoke-PowerBIRestMethod -Url $APIUrl -Method Get|Convert ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (Microsoft.Power...werBIRestMethod:InvokePowerBIRestMethod) [Invoke-PowerBIRestMethod], AggregateException
+ FullyQualifiedErrorId : One or more errors occurred.,Microsoft.PowerBI.Commands.Profile.InvokePowerBIRestMethod
# Authenticate to the Power BI Service API
Connect-PowerBIServiceAccount# Arrays to hold retrieved data
$access = @()
# Get the workspace data
$workspaces = Get-PowerBIWorkspace #-All -Scope Organization | Where-Object { $_.State -match 'Active' }ForEach($Workspace in $Workspaces)
{ $wkpacc = @()
$Wkpname = $Workspace.Name
$wkpid = $Workspace.Id
$APIUrl = 'groups/'+$wkpid+'/users'
$wkpacc = Invoke-PowerBIRestMethod -Url $APIUrl -Method Get|ConvertFrom-Json|SELECT -ExpandProperty Value|SELECT displayName,groupUserAccessRight|Add-Member -MemberType NoteProperty -Name WorkspaceName -Value $Wkpname -PassThru
$access += $wkpacc
}$access | Export-CSV "C:\Users\jeffrey.birrer\Desktop\PowerBI_WorkspaceUsers.csv" -NoTypeInformation