![](/img/trans.png)
[英]Create a scheduled task which runs every minute without the user being logged in using PowerShell
[英]How can I create a scheduled task using PowerShell that runs every x minutes or x hours?
使用 PowerShell 7.3.1,所以不能使用Register-ScheduledJob
。 无需直接修改计划任务 XML 文件,因为它们存储在 3 个不同的地方,我如何在 Windows 中创建一个每隔 x 小时或 x 分钟运行一次的计划任务。
我在 GUI 中完成了这个
我想在 PowerShell 中做类似的事情。
我已经检查了这个类似的问题,但它对我的情况来说是不完整的。
阅读New-ScheduledTaskTrigger
info ,似乎无法为每个人找到一个参数。
这就是我能想到的
$trigger = New-ScheduledTaskTrigger -RepetitionInterval "PT5M"
另一个想法,如果实际上不可能用本机 PowerShell 做我想做的事情,如果我用 PowerShell 创建我的任务和at startup
时的占位符触发器,然后根据我上传的屏幕截图使用schtasks.exe
配置触发器怎么办?
如果可行,使用schtasks.exe
修改触发器的命令是什么,如屏幕截图所示?
您需要将[timespan]
实例传递给New-ScheduledTaskTrigger
cmdlet 的相关参数,例如,您可以使用New-TimeSpan
cmdlet 构建它。
$trigger =
New-ScheduledTaskTrigger `
-Once -At (Get-Date).AddSeconds(5) `
-RandomDelay (New-TimeSpan -Seconds 30) `
-RepetitionInterval (New-TimeSpan -Minutes 5)
笔记:
-Once -At (Get-Date).AddSeconds(5)
从现在开始 5 秒后启动任务一次。
New-ScheduledTaskTrigger
似乎无法指定屏幕截图中显示的“在任务创建/修改时”选项(唯一与时间无关的选项是-AtLogon
和-AtStartup
,后者指的是系统的启动),并且-At
值必须在未来才能真正开始,因此会有 5 秒的延迟- 这并非万无一失,但除非您的系统负载异常重,否则应该这样做。 -At
需要一个[datetime]
实例,不带 arguments 的Get-Date
返回当前时间点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.