Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more

Reply
IT_IN_BC
Frequent Visitor

How to get Granulated Results for Power BI Usage Report.

I am working on figuring out how to run a Power BI license/usage audit that will show me not just who has a Power BI license (I can run that report). But which Power BI Pro licensed users have actually accessed the dataset.  So for example I have employees A, B and C who have a Power BI Pro license.  I want to run a report that will show me the actions that these employees did in Power BI as far as Viewing reports, datasets, refreshing data in the dataset for the reports, etc.

1 ACCEPTED SOLUTION

Hi @IT_IN_BC 

 

You will have to loop through the older data to get the information you are looking for by changing the date values.


I do have a blog post on how to do this using an Azure Function. You could just run the PowerShell on your local PC to download the data.

 

How you can store All your Power BI Audit Logs easily and indefinitely in Azure - FourMoo | Power BI...





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!







Power BI Blog

View solution in original post

5 REPLIES 5
GilbertQ
Super User
Super User

Hi @IT_IN_BC 

 

What you are looking for here is the power PI audit log which will give you those details of who is using what reports and details in your power BI service.

 

Here are more details: Track user activities in Power BI - Power BI | Microsoft Learn





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!







Power BI Blog

Hello GilbertQ

 

So I reviewed the link and that will only let me review results for a 24 hours period and I cannot do a date range.  I want to look at the past 3 to 6 months of user activity.  I am still digging to find a way to do this.  Hopefully there is otherwise Microsoft is lacking in some areas.  Also when I run the script it is only showing me.

Hi @IT_IN_BC 

 

You will have to loop through the older data to get the information you are looking for by changing the date values.


I do have a blog post on how to do this using an Azure Function. You could just run the PowerShell on your local PC to download the data.

 

How you can store All your Power BI Audit Logs easily and indefinitely in Azure - FourMoo | Power BI...





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!







Power BI Blog

Hello GilbertQ thank you for the link.  I will start reviewing this. I appreciate your help.

So I found the below script but it will only work for a 30 day window and I think it is only pulling up one user and not Power BI activity for all Power BI Pro licensed users like I would like.

 

#Input values before running the script:
$NbrDaysDaysToExtract = 30
$ExportFileLocation = 'C:\Users\kpost\OneDrive - Motus Integrated Technologies\Documents\Power-BI-Raw-Data'
$ExportFileName = 'PowerBIActivityEvents'
#--------------------------------------------

#Start with yesterday for counting back to ensure full day results are obtained:
[datetime]$DayUTC = (([datetime]::Today.ToUniversalTime()).Date).AddDays(-1)

#Suffix for file name so we know when it was written:
[string]$DateTimeFileWrittenUTCLabel = ([datetime]::Now.ToUniversalTime()).ToString("yyyyMMddHHmm")

#Loop through each of the days to be extracted (<Initilize> ; <Condition> ; <Repeat>)
For($LoopNbr=0 ; $LoopNbr -lt $NbrDaysDaysToExtract ; $LoopNbr++)
{
[datetime]$DateToExtractUTC=$DayUTC.AddDays(-$LoopNbr).ToString("yyyy-MM-dd")

[string]$DateToExtractLabel=$DateToExtractUTC.ToString("yyyy-MM-dd")

#Create full file name:
[string]$FullExportFileName = $ExportFileName `
+ '-' + ($DateToExtractLabel -replace '-', '') `
+ '-' + $DateTimeFileWrittenUTCLabel `
+ '.json'

#Obtain activity events and store intermediary results:
[psobject]$Events=Get-PowerBIActivityEvent `
-StartDateTime ($DateToExtractLabel+'T00:00:00.000') `
-EndDateTime ($DateToExtractLabel+'T23:59:59.999')

#Write one file per day:
$Events | Out-File "$ExportFileLocation\$FullExportFileName"

Write-Verbose "File written: $FullExportFileName" -Verbose
}
Write-Verbose "Extract of Power BI activity events is complete." -Verbose

 

Helpful resources

Announcements
March PBI video - carousel

Power BI Monthly Update - March 2025

Check out the March 2025 Power BI update to learn about new features.

March2025 Carousel

Fabric Community Update - March 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors