启动重复时的Powershell计划任务

时间:2017-12-02 19:49:19

标签: powershell scheduled-tasks

我正在尝试使用以下触发器创建计划任务:
  - 启动

  - 每5分钟运行一次   - 无限期运行

在GUI中,我可以通过选择以下内容轻松完成:
  - 开始任务:启动时 并在“高级”选项卡中:
  - 每隔5分钟重复一次任务   - 持续时间:无限期

但是我在使用Powershell时遇到了麻烦。

我烦恼的代码:
$repeat = (New-TimeSpan -Minutes 5)
$duration = ([timeSpan]::maxvalue)
$trigger = New-ScheduledTaskTrigger -AtStartup -RepetitionInterval $repeat -RepetitionDuration $duration

不会使用RepetitionInterval和RepetitionDuration参数。但我需要这个功能。 我怎么能实现我的目标呢?

3 个答案:

答案 0 :(得分:2)

New-ScheduledTaskTrigger使用参数集。当您指定希望计划任务启动时#34;登录"您将自己限制为以下参数集:

Parameter Set: AtStartup
New-ScheduledTaskTrigger [-AtStartup] [-RandomDelay <TimeSpan> ] [ <CommonParameters>]

如果您在启动时使用&#34;可能更有益的是#34;计划任务,使用&#34;一次&#34;每隔五分钟注册一个新的计划任务。参数集:

Parameter Set: Once
New-ScheduledTaskTrigger [-Once] -At <DateTime> [-RandomDelay <TimeSpan> ] [-RepetitionDuration <TimeSpan> ] [-RepetitionInterval <TimeSpan> ] [ <CommonParameters>]

使用正确的参数集后,应成功分配您的预定任务触发器。

答案 1 :(得分:1)

要使用“启动”触发器和重复命令从字面上设置任务,似乎您必须进入COM(或者显然使用TaskScheduler UI。)。

# Create the task as normal
$action = New-ScheduledTaskAction -Execute "myApp.exe"
Register-ScheduledTask -Action $action -TaskName "My Task" -Description "Data import Task" -User $username -Password $password

# Now add a special trigger to it with COM API.
# Get the service and task
$ts = New-Object -ComObject Schedule.Service
$ts.Connect()
$task = $ts.GetFolder("\").GetTask("My Task").Definition

# Create the trigger
$TRIGGER_TYPE_STARTUP=8
$startTrigger=$task.Triggers.Create($TRIGGER_TYPE_STARTUP)
$startTrigger.Enabled=$true
$startTrigger.Repetition.Interval="PT10M" # ten minutes
$startTrigger.Repetition.StopAtDurationEnd=$false # on to infinity
$startTrigger.Id="StartupTrigger"

# Re-save the task in place.
$TASK_CREATE_OR_UPDATE=6
$TASK_LOGIN_PASSWORD=1
$ts.GetFolder("\").RegisterTaskDefinition("My Task", $task, $TASK_CREATE_OR_UPDATE, $username, $password, $TASK_LOGIN_PASSWORD)

答案 2 :(得分:0)

在这里查看我的答案:https://stackoverflow.com/a/61646465/2943191

当然,一旦编写了工作示例,它实际上相对简单。

使用-AtLogOn代替-AtStartup