get-scheduledtask 查看计划任务状态的核心是其返回的任务定义对象中 state 属性,直接反映当前启用/禁用/运行等实时状态,而非历史执行结果;需配合 -taskname、-taskpath 精确查询,管理员权限才能查看全部系统任务。
用 get-scheduledtask 查看计划任务状态,核心是理解它返回的是“任务定义对象”,其中 state 属性直接反映当前启用/禁用/运行等状态,不是历史执行结果。
查单个任务的状态
最常用方式是按名称精确查询:
- Get-ScheduledTask -TaskName "BackupScript" —— 返回该任务的完整定义,最后一列 State 显示 Ready(已启用待触发)、Disabled(已禁用)、Running(正在运行)等
- 若任务在子文件夹中,必须带路径,比如:Get-ScheduledTask -TaskName "DailyCleanup" -TaskPath "\MyTasks\"
查一批任务的状态(支持通配符)
适合批量检查或筛选特定状态:
在 Windows 11 上"直接发声"的 TTS(从 WSL2/TUI 调用 powershell.exe + System.Speech)。适用于用户说"说出来/读出来/语音播报/用TTS",或反馈"没声音/tts 生成的 mp3 是空的/播不出来",以及需要中文语音但 OpenClaw 内置 tts 不可用时。
- Get-ScheduledTask -TaskPath "\Microsoft\Windows\*" | Where-Object State -eq "Running" —— 查找所有 Windows 系统子路径下当前正在运行的任务
- Get-ScheduledTask -TaskPath "\MyTasks\*" | Select-Object TaskName, State, TaskPath —— 列出自定义文件夹里所有任务的名称、状态和路径,便于快速浏览
结合 Get-ScheduledTaskInfo 看执行详情
Get-ScheduledTask 只告诉你“现在是否就绪”,要确认“上次有没有成功跑完”,得接 Get-ScheduledTaskInfo:
- Get-ScheduledTask -TaskName "LogRotate" | Get-ScheduledTaskInfo —— 输出 LastRunTime、LastTaskResult(0 表示成功,非 0 通常为错误码)、NextRunTime 等
- 常见错误码如 0x1(操作被用户取消)、0x41303(任务未触发,可能因条件不满足)可据此排查失败原因
注意权限与兼容性
这些命令在 Windows 10/11 和 Server 2016+ 均可用,但需以管理员身份运行 PowerShell 才能查看全部系统任务;普通用户只能看到自己创建或有权限访问的任务。非管理员账户执行时,可能部分系统路径(如 \Microsoft\Windows\ 下)会提示访问被拒绝,属于正常限制。










