Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago

Get dataset/report content via PowerShell

Scenario/goal: Get content (a tile value and a table) from a PowerBI report via PowerShell.

 

Is it possible to query for a report or dataset`s content via the API, specifically using either the Invoke-PowerBIRestMethod or the generic Invoke-RestMethod in PowerShell?

 

My initial testing using the MicrosoftPowerBIMgmt PowerShell module:

 

Connect-PowerBIServiceAccount -Tenant $tenantId -Credential $AppCredential -ServicePrincipal

 

$Workspace = Get-PowerBIWorkspace -Name 'Test'

 

$Report = Get-PowerBIReport -Name 'Test Data Report' -Workspace $Workspace

 

$Url = "https://api.powerbi.com/v1.0/myorg/reports/$($Report.Id.Guid)/pages"

 

Invoke-PowerBIRestMethod -Url $Url -Method Get

 

 

However, this only returns information about the reports pages – not the actual content/data.

 

Next, I tried the Get-PowerBITable cmdlet, which according to the documentation Retrieves a list of Power BI tables in the dataset that match the specified search criteria.

 

However, that was also not very successful:

Get-PowerBITable -DatasetId $Dataset.Id -WorkspaceId $Workspace.Id

Get-PowerBITable : Operation returned an invalid status code 'NotFound'

 

Both $DataSet and $Workspace is valid objects.

 

Looking at the dataset in the portal, there is a connection string looking like this:

powerbi://api.powerbi.com/v1.0/myorg/Test;initial catalog=Test Data

 

Maybe this can also be consumed somehow via PowerShell?

 

Any pointers in the right direction to get the actual data from a dataset or report using PowerShell would be highly appreciated.

2 Replies

  • JirkaZ's avatar
    JirkaZ
    Solution Specialist

    Anonymous the APIs nor PS cmdlets are not there to extract data from Power BI. In your case I'd utilize reports subscriptions.

    • Anonymous's avatar
      Anonymous
      Not applicable

      We eventually found the correct approach to achieve the goal in the mentioned scenario.

       

      I wrote an article about the experience and how we solved it here.