Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
Sign up nowGet Fabric certified for FREE! Don't miss your chance! Learn more
Getting the following error when trying to take over dataset using this REST API: https://docs.microsoft.com/en-us/rest/api/power-bi/datasets/take-over-in-group
Following is my code:
#Login using Service Principal
#-------------------------------
cls
$applicationId = "XXXXX"
$clientsec = "XXXXX" | ConvertTo-SecureString -AsPlainText -Force #
$tenantId = "XXXXX"
$resource = "https://analysis.windows.net/powerbi/api"
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $applicationId, $clientsec
Connect-PowerBIServiceAccount -ServicePrincipal -Credential $credential -TenantId $tenantId
# Get token
#-------------------------------
$token = Get-PowerBIAccessToken -AsString
# Building Rest API header with authorization token
#-------------------------------
$authHeader = @{
'Content-Type'='application/json'
'Authorization'=$token
}
#Group and Dataset Parameters
#-------------------------------
$group= "xxxxx" #workspace ID
$dataset= "xxxxxx" #dataset ID
# POST body
#-------------------------------
$postParams = @{
"datasetId" = "$dataset"
}
$jsonPostBody = $postParams | ConvertTo-JSON
$Url = "https://api.powerbi.com/v1.0/myorg/groups/$group/datasets/$dataset/Default.TakeOver"
## Take Over DataSet
#-------------------------------
Invoke-PowerBIRestMethod -Url $Url -Headers $authHeader -Body $jsonPostBody Method -POST -Verbose
The Service Principal has the following permissions:
What am I missing? Please help! Thanks in advance.
@Anonymous instead of
Method -Post
you need
-Method POST
Getting the same error after replacing -POST with POST:
Please read my reply again. Use -Method (note the dash)
Thank you, I changed the code but getting this new error now:
Invoke-PowerBIRestMethod -Url $Url -Headers $authHeader -Body $jsonPostBody -Method POST -Verbose
Looks like
Get-PowerBIAccessToken -AsString
returns more than you need. Investigate that and then only use the auth part.
most likely
$authHeader = @{
'Content-Type'='application/json'
'Authorization'=$token.Values[0]
}
Hmm, maybe the issue is elsewhere. Both
Connect-PowerBIServiceAccount
$headers = Get-PowerBIAccessToken -AsString
$authHeader = @{
'Content-Type'='application/json'
'Authorization'=$headers
}
Invoke-RestMethod -Headers $authHeader -Uri 'https://api.powerbi.com/v1.0/myorg/groups'
and
Connect-PowerBIServiceAccount
$headers = Get-PowerBIAccessToken
Invoke-RestMethod -Headers $headers -Uri 'https://api.powerbi.com/v1.0/myorg/groups'
work for me.
Maybe Invoke-PowerBIRestMethod is the culprit. Use Invoke-RestMethod instead.
Tried this code:
Invoke-RestMethod -Uri $Url -Headers $authHeader -Body $jsonPostBody -Method POST -Verbose
Getting the following error now:
@Anonymous replace the nonunicode "-" sign and type "-" again to each parameter.
If you love stickers, then you will definitely want to check out our Community Sticker Challenge!
Check out the January 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 |
| User | Count |
|---|---|
| 5 | |
| 4 | |
| 3 | |
| 2 | |
| 2 |