![schtasks.exe - 登录时启动,每分钟运行一次](https://linux22.com/image/1446637/schtasks.exe%20-%20%E7%99%BB%E5%BD%95%E6%97%B6%E5%90%AF%E5%8A%A8%EF%BC%8C%E6%AF%8F%E5%88%86%E9%92%9F%E8%BF%90%E8%A1%8C%E4%B8%80%E6%AC%A1.png)
我无法让 schtasks.exe 创建 Sheduled 任务,该任务将:
从登录时开始以分钟为间隔重复我尝试了以下操作:
schtasks /Create /SC MINUTE /MO 1 /TR "C:\windows\system32\calc.exe" /TN "Run Doo Dad" /RU "user" /RP "secret" /F
这将创建一个任务,该任务在创建后一分钟启动并重复,但在重启后无法成功启动。这似乎创建了一个“一次性”触发器,其用处值得怀疑,但显然是设计的一部分。
当我尝试使用“/SC ONLOGON”(同时提供 /RU 和 /RP)时,系统提示“错误:访问被拒绝”。即使我被授予访问权限,《著名手册》(https://msdn.microsoft.com/en-us/library/windows/desktop/bb736357%28v=vs.85%29.aspx) 说 ONLOGON 事件不能有修饰符,并且不清楚如何使用命令行实际指定 ONLOGON 的重复任务。
我几乎要疯了。我来自 unix 背景,并且渴望 cron 的简单性。
在我们的情况下,“只需在 GUI 中执行”或“创建 XML 文件”这样的答案是不可接受的。我可能愿意接受“使用 pywin32 执行”,但我看到的唯一示例几乎以完全相同的方式受到限制,而且无论如何我都找不到适当的文档。
我对 powershell 了解不够,不知道从哪里开始,但我愿意学习。
欢迎提出任何建议。
答案1
最终通过与 Windows 调度程序一起调度解决了这个问题。相反,重写了脚本来处理它自己的循环/锁定,并使用了 NSSM“非吸盘服务管理器”https://nssm.cc/处理实际的启动/停止任务。
这显然不是对原始问题的回答,因为我不得不通过重写脚本和安装第三方程序来解决这个问题。