Forum Discussion

mbutler71's avatar
mbutler71
Advocate I
5 years ago

Automating Updating a Dataset's Datasource and the Gateway Datasource "Maps To" with PowerShell

I was working to implement true CI/CD between Azure DevOps and our Power BI service. 

Had a lot of trouble updating the Dataset's (report) Datasource and having it automatically "Maps To" the correct Gateway Datasource (DSN). 

So, here is the solution that worked:
The Service Principal has access to update the Dataset's datasouce, but doesn't have access to the Gateway datasource (interface doesn't allow it at this time). So, we use the Service Principal to update the datasource in one PowerShell script, and a Generic Id to refresh the gateway (Bind To Gateway) in another PowerShell script. These two tasks, running sequentially, now run successfully in our DevOps Release Pipeline.

Hope this helps someone.

6 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    HI mbutler71,

    Thanks for sharing, This should help if someone faced similar requirements.
    BTW, I think you can also consider submitting ideas or contact the power bi dev team to report this requirement to help improving power bi features.

    Regards,

    Xiaoxin Sheng

  • Not sure where to submit that, but they should allow the Service Principal accounts to be added to the Gateway Datasource "Users." 
    That would help. It would allow us to use one account for the whole process. 

  • Hi,

    I am using org service account that's synced to Azure AD. When I manually login (Login-PowerBIServiceAccount) it works - I get pop up to login where I would enter service account anme and password into my org login page. Then it connects and I can bind the gateway.  However when I try to use below code for automation, it doesn't work.

     

    $PbiSecurePassword = ConvertTo-SecureString $password -Force -AsPlainText
    $PbiCredential = New-Object Management.Automation.PSCredential($username, $PbiSecurePassword)

     

    Connect-PowerBIServiceAccount -Credential $PbiCredential
    Login-PowerBIServiceAccount -Credential $PbiCredential

     

    Any Ideas: I am thinking that it's because I am not using @onmicrosoft.com account and for some reason PowerBi commandlet doesn't  support connect / login doesn't support  accounts that are synced via Azure Sync??

     

    Any advise is appreciated. 

     

    Thanks

     

  • mbutler71 

    When adding data source users in the gateway admin, you can specifiy a security group. If you add the service principal to the security group, this should then allow you to use the service principal to bind the gateway datasource.
    Hope this helps.