Forum Discussion
Anonymous
1 year agoNot applicable
Get Datasources as Admin
I have 66K+ Datasets ids with me , I'm in need to find the datasets which belongs to particular Gateway. I currently use Get Datasources as a admin giving Dataset as parameter every single time. Can ...
- 1 year ago
Hello Anonymous,
Can you please try using PowerShell, which supports looping and API requests:
$clientId = "Your-Client-ID" $tenantId = "Your-Tenant-ID" $clientSecret = "Your-Client-Secret" $datasets = @("DatasetID1", "DatasetID2", "DatasetID3") $gatewayId = "Your-Gateway-ID" $tokenUrl = "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token" $apiUrlBase = "https://api.powerbi.com/v1.0/myorg/admin/datasets" $body = @{ grant_type = "client_credentials" client_id = $clientId client_secret = $clientSecret scope = "https://analysis.windows.net/powerbi/api/.default" } $tokenResponse = Invoke-RestMethod -Method Post -Uri $tokenUrl -ContentType "application/x-www-form-urlencoded" -Body $body $accessToken = $tokenResponse.access_token $datasetDataSources = @() foreach ($datasetId in $datasets) { $apiUrl = "$apiUrlBase/$datasetId/datasources" $response = Invoke-RestMethod -Method Get -Uri $apiUrl -Headers @{ Authorization = "Bearer $accessToken" } foreach ($dataSource in $response.value) { if ($dataSource.gatewayId -eq $gatewayId) { $datasetDataSources += [PSCustomObject]@{ DatasetId = $datasetId DataSource = $dataSource } } } } $datasetDataSources | Format-Table -AutoSizeHope this helps.
Sahir_Maharaj
1 year agoSuper User
Hello Anonymous,
Can you please try using PowerShell, which supports looping and API requests:
$clientId = "Your-Client-ID"
$tenantId = "Your-Tenant-ID"
$clientSecret = "Your-Client-Secret"
$datasets = @("DatasetID1", "DatasetID2", "DatasetID3")
$gatewayId = "Your-Gateway-ID"
$tokenUrl = "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token"
$apiUrlBase = "https://api.powerbi.com/v1.0/myorg/admin/datasets"
$body = @{
grant_type = "client_credentials"
client_id = $clientId
client_secret = $clientSecret
scope = "https://analysis.windows.net/powerbi/api/.default"
}
$tokenResponse = Invoke-RestMethod -Method Post -Uri $tokenUrl -ContentType "application/x-www-form-urlencoded" -Body $body
$accessToken = $tokenResponse.access_token
$datasetDataSources = @()
foreach ($datasetId in $datasets) {
$apiUrl = "$apiUrlBase/$datasetId/datasources"
$response = Invoke-RestMethod -Method Get -Uri $apiUrl -Headers @{ Authorization = "Bearer $accessToken" }
foreach ($dataSource in $response.value) {
if ($dataSource.gatewayId -eq $gatewayId) {
$datasetDataSources += [PSCustomObject]@{
DatasetId = $datasetId
DataSource = $dataSource
}
}
}
}
$datasetDataSources | Format-Table -AutoSize
Hope this helps.