Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Upload a Report on a Power BI Report Server with Authentication Type set to "Windows Authentication"

Hello everybody,

we use PowerShell to upload and overwrite Power BI Reports on the Report Server.

This is the command, which we use for both tasks:

 

 

Write-RsRestCatalogItem -WebSession $session -Path $PowerBIReportFilePath -RsFolder $RsFolderName -Overwrite $true

 

 

 

However, it happens that the credentials-settings of an uploaded Report is either

or

 

 

We wish that for each uploaded or overwritten Report the "Authentication Type" setting is "Windows Authentication" and that the point "As the user viewing the report" is always checked. This is our main objective.

 

To achieve our goal, I added the following lines, after the uploading command (Write-RsRestCatalogItem) from above:

 

 

# the value of $PowerBIReportFileNamePathOnRs is something like /Folder/ReportName - without the extension '.pbix'
$dataSource = Get-RsRestItemDataSource -WebSession $session -RsItem $PowerBIReportFileNamePathOnRs
$dataSource.DataModelDataSource.AuthType = "Windows"
$dataSource.CredentialRetrieval = "Integrated"
Set-RsRestItemDataSource -WebSession $session -RsItem $PowerBIReportFileNamePathOnRs -RsItemType PowerBIReport -DataSources $dataSource

 

 

 

Unfortunately, with these commands, we always end up with these settings:

 

 

What are the correct commands to set the wished settings with PowerShell?

 

 

With best regards

  • Anonymous's avatar
    Anonymous
    4 years ago

    According to the official documentation by Microsoft, this is the correct way of doing it:

     

     

    # the value of $PowerBIReportFileNamePathOnRs is something like /Folder/ReportName - without the extension '.pbix'
    $dataSource = Get-RsRestItemDataSource -WebSession $session -RsItem $PowerBIReportFileNamePathOnRs
    $dataSource.DataModelDataSource.AuthType = 'Integrated'
    Set-RsRestItemDataSource -WebSession $session -RsItem $PowerBIReportFileNamePathOnRs -RsItemType 'PowerBIReport' -DataSources $dataSource

     

     

    And it is working fine!

2 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    According to the official documentation by Microsoft, this is the correct way of doing it:

     

     

    # the value of $PowerBIReportFileNamePathOnRs is something like /Folder/ReportName - without the extension '.pbix'
    $dataSource = Get-RsRestItemDataSource -WebSession $session -RsItem $PowerBIReportFileNamePathOnRs
    $dataSource.DataModelDataSource.AuthType = 'Integrated'
    Set-RsRestItemDataSource -WebSession $session -RsItem $PowerBIReportFileNamePathOnRs -RsItemType 'PowerBIReport' -DataSources $dataSource

     

     

    And it is working fine!

  • Anonymous's avatar
    Anonymous
    Not applicable

    That is awesome you did, if you can mark your reply as solution, so others can find your method quickly when researching.

     

    Paul Zheng _ Community Support Team