Forum Discussion
Issue with gateway cmdlet Connect-DataGatewayServiceAccount
I use the DataGateway cmdlet to manage my Data Gateway clusters.
I use Azure Key Vault to store service principal secrets and use Az module to read these secrets. Like below:
Install-Module Az -Confirm:$False -Force
Connect-AzAccount -Identity
$secretClientId = Get-AzKeyVaultSecret -VaultName "KeyVaultName" -Name "data-gateway-svcp-client-id" -AsPlainText;
$secretClientSecret = Get-AzKeyVaultSecret -VaultName "KeyVaultName" -Name "data-gateway-svcp-client-secret" -AsPlainText | ConvertTo-SecureString -AsPlainText -Force;
$secretTenantId = Get-AzKeyVaultSecret -VaultName "KeyVaultName" -Name "global-tenant-id" -AsPlainText;
After getting the secrets, I use the following command from DataGateway cmdlet to connect to Power BI service.
Install-Module -Name DataGateway -Confirm:$False -Force
Connect-DataGatewayServiceAccount -ApplicationId $secretClientId -ClientSecret $secretClientSecret -Tenant $secretTenantId
This is the error message I get immediately:
Connect-DataGatewayServiceAccount: Method not found: '!0 Microsoft.Identity.Client.BaseAbstractApplicationBuilder`1.WithLogging(Microsoft.IdentityModel.Abstractions.IIdentityLogger, Boolean)'.
As final update, Microsoft has confirmed that the issue exists and the DataGateway cmdlet is not compatible with Az PowerShell cmdlet. The problem that I have described above does not get resolved by disconnecting Az Account using `Disconnect-AzAccount` or even removing the Az module using `Remove-Module -Name Az`.
Microsoft has responded that they are going to deploy a fix but it'll be after a month. Therefore I'm closing this thread now and give an update in another forum when there is a fix.
13 Replies
- ExpiscornovusMost Valuable Professional
Hi mzare,
Can you run the below after the Install-Module -Name DataGateway line and share the outputs?
Just want to double check if you are using PS 7 (and which specific version). And if you are running versions of the module side by side.
In other words:
Install-Module -Name DataGateway -Confirm:$False -Force $PSVersionTable Get-Module DataGateway -ListAvailable | Select ModuleType,Version,Name- mzareFrequent Visitor
To ellaborate the issue further I've run the two scenarios below. The first screenshot is where I do not use Az module to get the service principal secrets.
This scenario is where connect to Azure account using `Connect-AzAccount` first and without reading the key vault secrets the `Connect-DataGatewayServiceAccount` command fails to connect to Power BI service.
- ExpiscornovusMost Valuable Professional
Hi mzare,
Can you add the -Verbose parameter at the end of your Connect-DataGatewayServiceAccount line and see if that gives you more information?
Btw, what is the Az module version you are using? That would be useful to know to reproduce your issue.
- SaiTejaTalasilaSuper User
Hi mzare ,
If your requirement is to use the rest API commands and pull the gateway status etc,.. you can refer the below link. I used Microsoft authentication and connecting to power bi service and pulling the details.
How-to-Capture-Power-BI-On-Premises-Gateway-Status-Using-PowerShell-and-Power-Automate
I hope it will be helpful.
Thanks,
Sai Teja
- AnonymousNot applicable
Thank you Expiscornovus and SaiTejaTalasila
Hi, mzare
If you can't find the corresponding cmdlet, you can import it into Powershell first:
Import-Module -Name DataGatewayThen run the following command:
Connect-DataGatewayServiceAccount -ApplicationId $secretClientId -ClientSecret $secretClientSecret -Tenant $secretTenantIdOf course, you can use Power Shell ISE to see if this module has been successfully installed on your computer. If it is installed and cannot be called directly, please import it first.
Best Regards
Jianpeng Li
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
- mzareFrequent Visitor
The issue is not importing the module. The issue only occurs when I run the Az command below first. Otherwise everything works fine independently.
Connect-AzAccount -Identity
- ExpiscornovusMost Valuable Professional
Hi mzare,
Maybe it is confused about the Az session.
Have you tried adding the a line with Disconnect-AzAccount before the Gateway lines to see if that makes a difference?
Disconnect-AzAccount Install-Module -Name DataGateway -Confirm:$False -Force Connect-DataGatewayServiceAccount -ApplicationId $secretClientId -ClientSecret $secretClientSecret -Tenant $secretTenantId
- mzareFrequent Visitor
As final update, Microsoft has confirmed that the issue exists and the DataGateway cmdlet is not compatible with Az PowerShell cmdlet. The problem that I have described above does not get resolved by disconnecting Az Account using `Disconnect-AzAccount` or even removing the Az module using `Remove-Module -Name Az`.
Microsoft has responded that they are going to deploy a fix but it'll be after a month. Therefore I'm closing this thread now and give an update in another forum when there is a fix.