Here’s a useful script I wrote the other day. This uses a few PowerShell modules to pull together information about all the Power BI workspaces in your Microsoft 365 tenant. This also includes the names of the Workspace/Group owners.
#Install-Module AzureAD
#Install-Module MicrosoftPowerBIMgmt
#Connect-PowerBIServiceAccount
#Connect-AzureAD
$workspaces = Get-PowerBIWorkspace -Scope Organization -All
$wslist = @()
foreach ($ws in $workspaces) {
$ws
$owners = $null
if ($ws.State -eq 'Active') {
if ($ws.Type -eq 'Workspace') {
$u = $ws.Users | Where-Object AccessRight -eq 'Admin' | Select-Object UserPrincipalName
Write-Host $u
$owners = $u.UserPrincipalName -join ","
}
elseif ($ws.Type -eq 'Group') {
$go = Get-AzureADGroupOwner -ObjectId $ws.ID
$owners = $go.UserPrincipalName -join ","
}
}
$item = [ordered] @{
Id = $ws.ID
Name = $ws.Name
Type = $ws.Type
State = $ws.State
IsReadOnly = $ws.IsReadOnly
IsOrphaned = $ws.IsOrphaned
IsOnDedicatedCapacity = $ws.IsOnDedicatedCapacity
CapacityId = $ws.CapacityId
Owners = $owners
}
$u = new-object PSObject -Property $item
$wslist += $u
}
$wslist | Export-Csv .\PowerBI-Workspaces.csv -NoTypeInformation
Top comments (0)