Raj*_*Raj 0 portal azure powerbi
Power BI 新手。尝试获取有权访问每个仪表板的用户的报告。任何指示都会有帮助。
提前致谢!
下面是我创建的脚本。首先更改 PowerBI 凭据的用户名和密码。该脚本收集结果,然后打开两个 Out Grid 窗口(工作区和工作区用户)。然后,您可以将网格结果复制/粘贴到 Excel 中。这不会导出共享报告和仪表板。
\n我安装了两个 PBI powershell 模块。我认为该脚本仅使用 MicrosoftPowerBIMgmt。
\n检查您是否有 PBI 模块。
\nget-module -ListAvailable | where {$_.Name -like '*BI*'}\nRun Code Online (Sandbox Code Playgroud)\n并检查可用的 cmdlet。
\nget-command -module MicrosoftPowerBIMgmt.Admin | sort CommandType, name\nget-command -module MicrosoftPowerBIMgmt.Capacities | sort CommandType, name\nget-command -module MicrosoftPowerBIMgmt.Data | sort CommandType, name\nget-command -module MicrosoftPowerBIMgmt.Profile | sort CommandType, name\nget-command -module MicrosoftPowerBIMgmt.Reports | sort CommandType, name\nget-command -module MicrosoftPowerBIMgmt.Workspaces | sort CommandType, name\nget-command -module PowerBIPS | sort CommandType, name\nRun Code Online (Sandbox Code Playgroud)\nPBI 工作空间和权限
\n#****************\n#------------------------------------------------------\n# --> PBI WORKSPACES & PERMISSIONS\n#\n# Export PBI results to grid for copy/paste to Excel table\n# * All groups (Active/Deleted)\n# * All workspaces (Active)\n# * All workspace permissions\n#\n# RestAPI call for each workspace (Group Users) \n# * https://learn.microsoft.com/en-us/rest/api/power-bi/groups/getgroupusers\n#\n#------------------------------------------------------ \n\n\n#****************\n#------------------------------------------------------\n# --> PBI Connection\n#------------------------------------------------------ \nWrite-Host " PBI credentials ..." -ForegroundColor Yellow -BackgroundColor DarkGreen\n\n## PBI credentials \n\n$password = "myPassword" | ConvertTo-SecureString -asPlainText -Force\n$username = "myemail@domain.com" \n$credential = New-Object System.Management.Automation.PSCredential($username, $password)\n\n## PBI connect \n\nConnect-PowerBIServiceAccount -Credential $credential\n\n# Login-PowerBI\n\n\n#****************\n#------------------------------------------------------\n# --> Workspace info \n# \n# * Get-PowerBIWorkspace > "WARNING: Defaulted to show top 100 workspaces. Use -First & -Skip or -All to retrieve more results."\n# * Grid exported for workspaces\n#------------------------------------------------------ \nWrite-Host " Workspace info ..." -ForegroundColor Yellow -BackgroundColor DarkGreen\n \n## List all groups, Select ID desired for Variables section \n## PBIWorkspace properties values are NULL if Scope is not set to Organization \n# Get-PowerBIWorkspace -Scope Organization -Filter "tolower(name) eq 'BI Team POC - DEV'" \n\n# SET\n$Groups = Get-PowerBIWorkspace -Scope Organization -All | SORT @{Expression="Type"; Descending=$True}, Name\n\n$Groups_deleted = $Groups | SELECT Id, Name, Type, State | WHERE State -EQ 'Deleted'\n$Groups = $Groups | SELECT Id, Name, Type, State | WHERE State -NE 'Deleted'\n$GroupWorkspaces = $Groups | WHERE Type -eq 'Workspace' \n\n# PRINT\n$Groups_deleted | Select Id, Name, Type, State | ft \xe2\x80\x93auto \n$Groups | Select Id, Name, Type, State | ft \xe2\x80\x93auto \n$GroupWorkspaces | Select Id, Name, Type | ft \xe2\x80\x93auto \nGet-PowerBIWorkspace -Scope Organization -Name "BI Team Sandbox" | Select Id, Name, Type | ft \xe2\x80\x93auto \n\n# OUT GRID\n$GroupsWorkspaces | Select Id, Name, Type | Out-GridView \n$Groups | Select Id, Name, Type | Out-GridView\n$Groups_deleted | Select Id, Name, Type, State | Out-GridView\n\n\n#------------------------------------------------------ \n## LOOP FOLDERS ##################\n# * RestAPI call for each workspace (Group Users) \n# * Grid exported for workspace user access\n#------------------------------------------------------ \n\n# Clear variable before loop to reseat array data collector \nclear-variable -name WorkspaceUsers\n\nWrite-Host " Looping ..." -ForegroundColor Yellow -BackgroundColor DarkGreen\n\nforeach ($GroupWorkspaceId in $GroupWorkspaces.Id) {\n\n $WorkspaceObject = Get-PowerBIWorkspace -Scope Organization -Id $GroupWorkspaceId\n $pbiURL = "https://api.powerbi.com/v1.0/myorg/groups/$GroupWorkspaceId/users"\n $WorkspaceObject | Select Id, Name, Type | ft \xe2\x80\x93auto \n\n Write-Host ($WorkspaceObject.Name +" | "+ $WorkspaceObject.Type) -ForegroundColor White -BackgroundColor Blue\n Write-Host $GroupWorkspaceId -ForegroundColor White -BackgroundColor Blue\n Write-Host $pbiURL -ForegroundColor White -BackgroundColor Blue\n\n\n#****************\n#------------------------------------------------------\n# --> 1. API Call for WORKSPACE USERS \n#------------------------------------------------------ \n Write-Host " API Call ..." -ForegroundColor Yellow -BackgroundColor DarkGreen\n \n ## API call\n $resultJson = Invoke-PowerBIRestMethod \xe2\x80\x93Url $pbiURL \xe2\x80\x93Method GET \n $resultObject = ConvertFrom-Json -InputObject $resultJson \n\n ## Collect data fields for each loop\n $WorkspaceUsers += $resultObject.Value | \n SELECT @{n='WorkspaceId';e={$GroupWorkspaceId}}, \n @{n='Workspace';e={$WorkspaceObject.Name}}, \n displayName, \n emailAddress, \n @{n='UserRole';e={$_.groupUserAccessRight}}, \n @{n='Principle';e={$_.principalType}} |\n SELECT Workspace, displayName, UserRole, Principle, emailAddress | \n SORT UserRole, displayName \n \n ## Print loop results\n $WorkspaceUsers | ft -auto | Where{$_.WorkspaceId -eq $GroupWorkspaceId} \n\n clear-variable -name resultJson\n clear-variable -name resultObject\n\n}\n## END LOOP ##################\n#------------------------------------------------------ \n\n## Export user access for all workspaces\n $WorkspaceUsers | SORT Workspace, UserRole, displayName | Out-GridView \nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
26411 次 |
| 最近记录: |