Forum Discussion
User activities by Powershell
- 4 years ago
#2. Authenticate to Power BI
$PBIAdminUPN="userName"
$PBIAdminPW="Password"$SecPasswd = ConvertTo-SecureString $PBIAdminPW -AsPlainText -Force
$myCred = New-Object System.Management.Automation.PSCredential($PBIAdminUPN,$SecPasswd)Connect-PowerBIServiceAccount -Credential $myCred
$AuditType = 'PowerBIAudit'
$RetrieveDate = Get-Date
$RetrieveDate = $RetrieveDate.AddDays(-2) #replace -2 with days you want to extractfor($i = 0; $i -lt 1; $i++){ #repalce 1 with days you want
$RetrieveDate = $RetrieveDate.AddDays(+1)
$RetrieveYearStr = $RetrieveDate.ToString('yyyy')
$RetrieveMonthStr = $RetrieveDate.ToString('MM')
$RetrieveDayStr = $RetrieveDate.ToString('dd')$StartDT = $RetrieveYearStr + '-' + $RetrieveMonthStr + '-' + $RetrieveDayStr + 'T00:00:00.000'
$EndDT = $RetrieveYearStr + '-' + $RetrieveMonthStr + '-' + $RetrieveDayStr + 'T23:59:59.999'$datestring = $RetrieveDate.ToString('yyyyMMdd')
$ActivityLogsPath = ('D:\Audit\PowerBIAudit_' + $datestring + '.csv')#4. Export out current date activity log events to CSV file
$ActivityLogs = Get-PowerBIActivityEvent -StartDateTime $StartDT -EndDateTime $EndDT | ConvertFrom-Json
$ActivityLogSchema = $ActivityLogs | `
Select-Object `
Id,CreationTime,CreationTimeUTC,RecordType,Operation,OrganizationId,UserType,UserKey,Workload,UserId,ClientIP,UserAgent,Activity,ItemName,WorkSpaceName,DashboardName,DatasetName,ReportName,WorkspaceId,ObjectId,DashboardId,DatasetId,ReportId,OrgAppPermission,CapacityId,CapacityName,AppName,IsSuccess,ReportType,RequestId,ActivityId,AppReportId,DistributionMethod,ConsumptionMethod, `
@{Name="RetrieveDate";Expression={$RetrieveDate}}$ActivityLogSchema | Export-Csv $ActivityLogsPath
Write-Host ('Created file {0}' -f $ActivityLogsPath)
}
use this code, replace username and password with yours and days with your requirementThanks to GilbertQ for initial code.
If this post helps, then please consider Accept it as the solution, Appreciate your Kudos!
No. But of course you can write your own looping code in Powershell
Track user activities in Power BI - Power BI | Microsoft Docs
- Anonymous4 years agoNot applicable
Thanks for the response, if you have loping code please send me otherwise is there any website I will find the code.
- arvindsingh8024 years agoCommunity Champion
#2. Authenticate to Power BI
$PBIAdminUPN="userName"
$PBIAdminPW="Password"$SecPasswd = ConvertTo-SecureString $PBIAdminPW -AsPlainText -Force
$myCred = New-Object System.Management.Automation.PSCredential($PBIAdminUPN,$SecPasswd)Connect-PowerBIServiceAccount -Credential $myCred
$AuditType = 'PowerBIAudit'
$RetrieveDate = Get-Date
$RetrieveDate = $RetrieveDate.AddDays(-2) #replace -2 with days you want to extractfor($i = 0; $i -lt 1; $i++){ #repalce 1 with days you want
$RetrieveDate = $RetrieveDate.AddDays(+1)
$RetrieveYearStr = $RetrieveDate.ToString('yyyy')
$RetrieveMonthStr = $RetrieveDate.ToString('MM')
$RetrieveDayStr = $RetrieveDate.ToString('dd')$StartDT = $RetrieveYearStr + '-' + $RetrieveMonthStr + '-' + $RetrieveDayStr + 'T00:00:00.000'
$EndDT = $RetrieveYearStr + '-' + $RetrieveMonthStr + '-' + $RetrieveDayStr + 'T23:59:59.999'$datestring = $RetrieveDate.ToString('yyyyMMdd')
$ActivityLogsPath = ('D:\Audit\PowerBIAudit_' + $datestring + '.csv')#4. Export out current date activity log events to CSV file
$ActivityLogs = Get-PowerBIActivityEvent -StartDateTime $StartDT -EndDateTime $EndDT | ConvertFrom-Json
$ActivityLogSchema = $ActivityLogs | `
Select-Object `
Id,CreationTime,CreationTimeUTC,RecordType,Operation,OrganizationId,UserType,UserKey,Workload,UserId,ClientIP,UserAgent,Activity,ItemName,WorkSpaceName,DashboardName,DatasetName,ReportName,WorkspaceId,ObjectId,DashboardId,DatasetId,ReportId,OrgAppPermission,CapacityId,CapacityName,AppName,IsSuccess,ReportType,RequestId,ActivityId,AppReportId,DistributionMethod,ConsumptionMethod, `
@{Name="RetrieveDate";Expression={$RetrieveDate}}$ActivityLogSchema | Export-Csv $ActivityLogsPath
Write-Host ('Created file {0}' -f $ActivityLogsPath)
}
use this code, replace username and password with yours and days with your requirementThanks to GilbertQ for initial code.
If this post helps, then please consider Accept it as the solution, Appreciate your Kudos!
- Anonymous4 years agoNot applicable
Hi Arvindsingh,
If i run the above powershell script i am getting individual csv files with PowerBIAudit_respective dates, but my requirement is instead of creating individual csv files, i want single csv file with combined csv files with name as PBI_Audit_Logs.
Thanks in Advance