Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
Is it possible to get a list of all PowerBI reports published, to which workspace they are published to, who has permission to report?
We are moving reports to PowerBI and in time as quantity grows, administration of same is critical. At a glance I need to see list of all reports ideally what workspaces they are published to and who has access.
Is there a means of reporting this?
Thanks.
Solved! Go to Solution.
@WCJ - You will need use 3 APIs to get
1. Gets all workspaces
2. Gets reports in each workspace - Loop for each worksapce above
3. Fetches direct report-level permissions - Loop for each report above
If you have Power BI Admin access then can use below powershell script
# Connect to Power BI Service
Connect-PowerBIServiceAccount
# Get all workspaces
$workspaces = Get-PowerBIWorkspace -Scope Organization
# Initialize an array to store report details
$reportDetails = @()
foreach ($workspace in $workspaces) {
Write-Host "Processing Workspace: $($workspace.Name)"
# Get reports in the workspace
$reports = Get-PowerBIReport -WorkspaceId $workspace.Id
foreach ($report in $reports) {
Write-Host "Processing Report: $($report.Name)"
# Get users with workspace-level permissions
$workspacePermissions = Get-PowerBIWorkspaceUser -Id $workspace.Id
foreach ($permission in $workspacePermissions) {
$reportDetails += [PSCustomObject]@{
ReportName = $report.Name
ReportId = $report.Id
WorkspaceName = $workspace.Name
WorkspaceId = $workspace.Id
User = $permission.DisplayName
UserEmail = $permission.EmailAddress
AccessScope = "Workspace Level"
AccessRight = $permission.AccessRight
}
}
# Get users with direct report-level permissions
$reportPermissions = Get-PowerBIReportUser -WorkspaceId $workspace.Id -ReportId $report.Id
foreach ($permission in $reportPermissions) {
$reportDetails += [PSCustomObject]@{
ReportName = $report.Name
ReportId = $report.Id
WorkspaceName = $workspace.Name
WorkspaceId = $workspace.Id
User = $permission.DisplayName
UserEmail = $permission.EmailAddress
AccessScope = "Report Level"
AccessRight = $permission.AccessRight
}
}
}
}
# Export results to CSV
$reportDetails | Export-Csv -Path "PowerBI_Reports_Permissions.csv" -NoTypeInformation
Write-Host "Report details exported to PowerBI_Reports_Permissions.csv"
Hi @WCJ,
I wanted to check if you had the opportunity to review the information provided. Please feel free to contact us if you have any further questions. If my response has addressed your query, please accept it as a solution and give a 'Kudos' so other members can easily find it.
Thank you.
Hi @WCJ,
May I ask if you have resolved this issue? If so, please mark the helpful reply and accept it as the solution. This will be helpful for other community members who have similar problems to solve it faster.
Thank you.
@WCJ - You will need use 3 APIs to get
1. Gets all workspaces
2. Gets reports in each workspace - Loop for each worksapce above
3. Fetches direct report-level permissions - Loop for each report above
If you have Power BI Admin access then can use below powershell script
# Connect to Power BI Service
Connect-PowerBIServiceAccount
# Get all workspaces
$workspaces = Get-PowerBIWorkspace -Scope Organization
# Initialize an array to store report details
$reportDetails = @()
foreach ($workspace in $workspaces) {
Write-Host "Processing Workspace: $($workspace.Name)"
# Get reports in the workspace
$reports = Get-PowerBIReport -WorkspaceId $workspace.Id
foreach ($report in $reports) {
Write-Host "Processing Report: $($report.Name)"
# Get users with workspace-level permissions
$workspacePermissions = Get-PowerBIWorkspaceUser -Id $workspace.Id
foreach ($permission in $workspacePermissions) {
$reportDetails += [PSCustomObject]@{
ReportName = $report.Name
ReportId = $report.Id
WorkspaceName = $workspace.Name
WorkspaceId = $workspace.Id
User = $permission.DisplayName
UserEmail = $permission.EmailAddress
AccessScope = "Workspace Level"
AccessRight = $permission.AccessRight
}
}
# Get users with direct report-level permissions
$reportPermissions = Get-PowerBIReportUser -WorkspaceId $workspace.Id -ReportId $report.Id
foreach ($permission in $reportPermissions) {
$reportDetails += [PSCustomObject]@{
ReportName = $report.Name
ReportId = $report.Id
WorkspaceName = $workspace.Name
WorkspaceId = $workspace.Id
User = $permission.DisplayName
UserEmail = $permission.EmailAddress
AccessScope = "Report Level"
AccessRight = $permission.AccessRight
}
}
}
}
# Export results to CSV
$reportDetails | Export-Csv -Path "PowerBI_Reports_Permissions.csv" -NoTypeInformation
Write-Host "Report details exported to PowerBI_Reports_Permissions.csv"
Thanks for that much appreciated. I will update this post when I've tried the API's.
Hi @WCJ The best way to do this is using the Power BI REST APIs and extract the data on a daily basis. We make use of Fabric Notebooks to load the data to a lakehouse. Using the REST APIs and Semantic Link.
Here are some usefull links on how to extract the data using PowerShell.
Power BI REST APIs
https://learn.microsoft.com/en-us/rest/api/power-bi/
Power BI Workspace Members Script
https://gist.github.com/jcallaghan/86b391716cdec5b39926e196b28a1496
PowerShell script to list Power BI workspaces and export to Excel
https://gist.github.com/anelliaf/7a43c7f5105d235ff9cdd969498ced7d
Retrieving list of users for all workspaces in your PowerBI tenant using Powershell
https://tomaztsql.wordpress.com/2022/09/03/retrieving-list-of-users-for-all-workspaces-in-your-power...
Hi @WCJ,
Thank you for posting your query in the Microsoft Fabric Community Forum.
The answer provided by @Akash_Varuna was indeed correct. Additionally, I am including some more points to make it easier for you.
Yes, it is possible to obtain a list of all Power BI reports, their associated workspaces, and user permissions. Please follow the process below:
If you are a Power BI Admin, you can access the Power BI Admin Portal to retrieve details on workspaces and user permissions:
For your reference: What is the Microsoft Fabric admin portal? - Microsoft Fabric | Microsoft Learn
If this helps, then please Accept it as a solution and dropping a "Kudos" so other members can find it more easily.
Thank you
Thanks for the info. I can :
But can't see option to :
It may be I don't have all the permission required but could you send snaphot or explain where export option is?
Thanks.
Hi @WCJ,
Thank you for your question.
Important Note on Permissions:
The Export option is only visible if you have the appropriate permissions as a Power BI Admin (or Fabric Admin). If you do not see the Export button, it is likely that you do not have admin rights. You may need to check with your organization’s Power BI administrator to confirm your access level.
I trust this information proves useful. If it does, kindly Accept it as a solution and give it a 'Kudos' to help others locate it easily.
Thank you.
Hi @WCJ,
I hope this information is helpful. Please let me know if you have any further questions or if you'd like to discuss this further. If this answers your question, please Accept it as a solution and give it a 'Kudos' so others can find it easily.
Thank you.
Hi @WCJ You could do this on Power BI Admin Portal
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
| User | Count |
|---|---|
| 52 | |
| 49 | |
| 44 | |
| 16 | |
| 16 |