指定日期调用Get-PowerBIActivityEvent返回BadRequest错误求助
问题
编写了以下PowerShell脚本,登录PowerBI后,尝试基于2023-02-27往前推1天的日期调用Get-PowerBIActivityEvent获取ViewReport类型的活动日志,但执行时返回BadRequest错误;直接使用当前日期时脚本可正常运行。
脚本内容
#LoginToPowerBI Login-PowerBI #OutPutFile $OutPutFilePath = "c:\temp\PowerBIAuditLog.txt" $day= get-date "2023-02-27" Write-Output $day $s = 1 $periodStart=$day.AddDays(-$s) $base=$periodStart.ToString("yyyy-MM-dd") Write-Output $base $GetActivity = Get-PowerBIActivityEvent -StartDateTime ($base+'T00:00:00.000') -EndDateTime ($base+'T23:59:59.999') -ActivityType 'ViewReport' -ResultType JsonString | ConvertFrom-Json write-host $GetActivity
错误信息
Get-PowerBIActivityEvent : Operation returned an invalid status code 'BadRequest' At line:20 char:16 -... tActivity = Get-PowerBIActivityEvent -StartDateTime ($base+'T00:00:00 ... - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CategoryInfo : WriteError: (Microsoft.Power...BIActivityEvent:GetPowerBIActivityEvent) [Get-PowerBIActivityEvent], HttpOperationException FullyQualifiedErrorId : Operation returned an invalid status code 'BadRequest',Microsoft.PowerBI.Commands.Admin.GetPowerBIActivityEvent
解决方法
- 检查日志保留期限:Power BI活动日志默认最多保留90天,部分租户可延长。如果2023-02-26超出了你的租户日志保留范围,就会返回BadRequest。先确认该日期的日志是否还存在。
- 改用DateTime类型传参:不要手动拼接日期字符串,直接传递
DateTime对象给参数,避免格式解析错误。修改后的代码片段:$periodStart = $day.AddDays(-$s) $startTime = $periodStart.Date # 自动获取当天00:00:00 $endTime = $startTime.AddDays(1).AddMilliseconds(-1) # 自动获取当天23:59:59.999 $GetActivity = Get-PowerBIActivityEvent -StartDateTime $startTime -EndDateTime $endTime -ActivityType 'ViewReport' -ResultType JsonString | ConvertFrom-Json - 确认账号权限:确保执行脚本的账号拥有Power BI管理员权限,或者至少具备查看活动日志的权限。非管理员账号只能查询自身活动,若目标日期无对应活动,也可能触发异常。
- 测试时间范围:如果目标日期在保留期内,先尝试扩大查询范围(比如查3天的日志),若能正常返回,再缩小到目标日期,排查是否因该日期无
ViewReport活动导致模块错误返回BadRequest。
内容的提问来源于stack exchange,提问作者EricShahi
相关产品推荐
相关产品推荐

