Skip to content

Instantly share code, notes, and snippets.

@SQLvariant
Last active February 12, 2024 12:12
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SQLvariant/fd3b77e597fc6e13118636bf0d682383 to your computer and use it in GitHub Desktop.
Save SQLvariant/fd3b77e597fc6e13118636bf0d682383 to your computer and use it in GitHub Desktop.
Get the Governance Data You Need Out of Your Power BI Gateways with PowerShell
<# Make sure you have the modules installed.
You only need the ImportExcel module if you want to export the results to Excel files. #>
Install-Module DataGateway
Install-Module ImportExcel
<# Discovery #>
# All Gateway Clusters in your tenant.
Get-DataGatewayCluster -Scope Organization
# All nodes of all Gateway Clusters in your tenant.
Get-DataGatewayCluster -Scope Organization | SELECT -ExpandProperty MemberGateways
# All Data Sources for all Gateways you have Admin right to.
Get-DataGatewayCluster | Get-DataGatewayClusterDatasource
# All permissions of all Data Sources for all Gateways.
# NOTE: You need to be an admin or user of the Data Source in order to see its permissions.
foreach ($clusterDS in Get-DataGatewayCluster | Get-DataGatewayClusterDatasource)
{
$a = Get-DataGatewayClusterDatasourceUser -GatewayClusterId $clusterDS.ClusterId -GatewayClusterDatasourceId $clusterDS.Id
$a | Add-Member -NotePropertyName ClusterId -NotePropertyValue $clusterDS.ClusterId;
$a | Add-Member -NotePropertyName DatasourceId -NotePropertyValue $clusterDS.Id;
$a | Format-Table -Autosize
}
<# Export Portion
Everything here is the same as above, except that the results are going to separate Worksheets
within the same Excel file. #>
Get-DataGatewayCluster -Scope Organization |
Export-Excel -Path c:\temp\PPGateways.xlsx -WorksheetName DataGatewayClusters
Get-DataGatewayCluster -Scope Organization | SELECT -ExpandProperty MemberGateways |
Export-Excel -Path c:\temp\PPGateways.xlsx -WorksheetName ClusterMembers
Get-DataGatewayCluster | Get-DataGatewayClusterDatasource |
Export-Excel -Path c:\temp\PPGateways.xlsx -WorksheetName ClusterDatasource
foreach ($clusterDS in Get-DataGatewayCluster | Get-DataGatewayClusterDatasource)
{
$a = Get-DataGatewayClusterDatasourceUser -GatewayClusterId $clusterDS.ClusterId -GatewayClusterDatasourceId $clusterDS.Id
$a | Add-Member -NotePropertyName ClusterId -NotePropertyValue $clusterDS.ClusterId;
$a | Add-Member -NotePropertyName DatasourceId -NotePropertyValue $clusterDS.Id;
$a | Export-Excel -Path c:\temp\PPGateways.xlsx -WorksheetName DatasourcePermissions -Append
}
@SQLvariant
Copy link
Author

SQLvariant commented Sep 29, 2020

Are you getting the correct number of items back when you run Get-DataGatewayCluster | Get-DataGatewayClusterDatasource?

@thegurugit
Copy link

@SQLvariant

There are no results
image

@SQLvariant
Copy link
Author

@SQLvariant

There are no results
image

What about if you run just that first one? Does Get-DataGatewayCluster return any data?

@uzma-fis
Copy link

uzma-fis commented Feb 1, 2024

Absolutely brilliant script to use as an admin - awesome job

@sunilyd
Copy link

sunilyd commented Feb 12, 2024

Just wanted to say Tons of thanks 🥇

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment