最直接可靠的方式是通过任务计划程序图形界面或powershell命令查询系统自带的任务历史日志,需先启用“所有任务历史记录”,再通过“历史记录”选项卡或get-scheduledtaskinfo、get-winevent等命令查看执行时间、状态及错误代码。
在 windows 中查看 powershell 计划任务的最近执行历史,最直接可靠的方式是通过“任务计划程序”图形界面或命令行工具查询系统自带的任务历史日志。该日志由 task scheduler 自动记录,无需额外配置,但需确保任务的“历史记录”功能已启用。
确认任务已启用历史记录
默认情况下,Windows 可能关闭任务历史记录。若没开启,就查不到任何执行详情:
- 打开“任务计划程序”(可搜索“任务计划程序”或运行 taskschd.msc)
- 在左侧面板选中“任务计划程序库”
- 在右侧面板点击“启用所有任务历史记录”(如果该选项呈灰色,说明已启用;若为可点击状态,请点击启用)
在图形界面中查看具体任务的历史
对某个 PowerShell 计划任务,右键 → “属性” → 切换到“历史记录”选项卡,即可看到按时间倒序排列的详细执行记录,包括:
通过 handsfree-windows CLI控制 Windows 本机应用 (UIA) 和浏览器 (Playwright) 的引导技能,用于自动化或测试桌面应用。
- 操作:如“已启动操作”“操作已完成”“操作失败”
- 日期和时间:精确到秒
- 任务路径与实例 ID
- 错误代码(如 0x1 或 0x2 表示失败,0x0 表示成功)
用 PowerShell 命令快速筛选最近执行记录
适合批量检查或自动化排查,例如查看过去 24 小时内所有 PowerShell 任务的执行状态:
- Get-ScheduledTask | Where-Object {$_.TaskName -like "*PowerShell*"} | Get-ScheduledTaskInfo —— 查看任务的最后运行时间、下次运行时间、运行次数
- Get-WinEvent -LogName "Microsoft-Windows-TaskScheduler/Operational" -MaxEvents 50 | Where-Object {$_.Id -in 200,201,102,103} | Format-List TimeCreated, Id, Message —— 获取关键事件:200(任务启动)、201(任务完成)、102(触发器激活)、103(任务因条件不满足未运行)
- 加时间过滤更精准:-FilterHashtable @{LogName='Microsoft-Windows-TaskScheduler/Operational'; StartTime=(Get-Date).AddHours(-24)}
常见问题提示
如果查不到历史记录,优先检查以下几点:
- 系统日志服务(Windows Event Log)是否正在运行(services.msc 中确认 Windows Event Log 状态为“正在运行”)
- 任务是否设置了“不管用户是否登录都要运行”,且勾选了“只在用户登录时运行”——后者会导致无交互时无日志
- 任务执行失败时未输出错误(比如 PowerShell 脚本崩溃退出),建议在脚本开头加上 $ErrorActionPreference = "Stop" 并重定向输出到日志文件辅助定位










