Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.
Check it out now!Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more
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.
Solved! Go to 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.
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
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.
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
User | Count |
---|---|
34 | |
29 | |
25 | |
18 | |
15 |
User | Count |
---|---|
48 | |
37 | |
33 | |
15 | |
10 |