我似乎对Task Scheduler
触发器设置有点困惑。(我在 Windows Server 2008 Web 上)
我想创建一个每 5 分钟运行一次的任务,无论用户是否登录,并且当计算机重新启动时,该任务就会立即回到其计划中。
因此,我已根据需要设置了所有内容,但请注意,我的触发器有两个选项:
- 开始任务
At Startup
(然后Advanced Settings
每五分钟无限重复一次) - 开始任务
At task creation/modification
(然后Advanced Settings
每五分钟无限重复一次)
如果我选择 (1),它不会立即运行。我必须重新启动,但我不想这样做。
如果我选择(2),它将立即运行,但下次重启后将不会运行。
如果我为 (1) 和 (2) 创建触发器,它可能会起作用,但是当我将来修改任务时,是否会有两个实例在运行,因为两个触发器都会触发?还是它会覆盖自启动以来开始的 5 分钟间隔?我不希望发生这两种情况。
有任何想法吗?
答案1
我会尝试这样做:
- 添加触发器: 确保将当前日期和 00:00:00 设置为开始时间
- 如果错过了启动,请确保任务尽快运行:
答案2
以下是使用 PowerShell 创建此类计划任务的方法:
$executable = "foo.exe"
$taskName = "My Task"
$action = New-ScheduledTaskAction -execute $executable
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).Date
$settings = New-ScheduledTaskSettingsSet -StartWhenAvailable
Register-ScheduledTask -TaskName $taskName -Trigger $trigger -Action $action -Setting $settings -description $description -User "NT AUTHORITY\SYSTEM" -RunLevel 1
$trigger.RepetitionInterval = (New-TimeSpan -Minutes 5)
$trigger.RepetitionDuration = (New-TimeSpan -Days 1000)
Set-ScheduledTask $taskName -Trigger $trigger