从Powershell触发一份工作

时间:2017-06-08 12:58:14

标签: windows powershell scheduled-tasks

我想知道如何从powershell为以下场景创建任务调度程序作业。

该脚本在周一至周五上午6点至晚上9点之间运行,如果脚本运行时间超过30分钟,脚本将终止。

我试过了

$adminname=''
$adminpassword=''
$taskName = ""
$L = New-ScheduledTaskAction –Execute "PowerShell.exe" -Argument ''
$T = New-ScheduledTaskTrigger -Daily -At 06:30Pm -DaysOfWeek 'Monday', 'Tuesday', 'Wednesday','Thursday','Friday' 
$P = New-ScheduledTaskPrincipal -UserId "" -LogonType Password -RunLevel Highest
$S = New-ScheduledTaskSettingsSet
Register-ScheduledTask -TaskName $taskName -Action $L -Trigger $T -User $adminname -Password $adminpassword -Settings $S
$task = get-scheduledtask -TaskName $taskName
$task.Triggers.repetition.Interval = 'PT15M'
$task | Set-ScheduledTask -User $adminname -Password $adminpassword

以上代码安排从星期一到星期五的工作。但无法找到一种方法来应用时间戳,即在早上6点到晚上9点之间运行

如果运行时间超过30分钟,我已尝试添加$task.Triggers.ExecutionTimeLimit = 'PT30M来终止作业。但是它给出了The property 'ExecutionTimeLimit' cannot be found on this object. Verify that the property exists and can be set.错误

1 个答案:

答案 0 :(得分:1)

New-ScheduledTaskAction:设置您要运行的内容

New-ScheduledTaskTrigger:设置开始运行的频率和时间

Register-ScheduledTask:创建任务

[TASK] .Triggers.Repetition.Duration:任务时间应从开始时间开始运行多长时间

[TASK] .Triggers.Repetition.Interval:任务在被杀之前应该运行多长时间

{PK表示接送时间,使用PK表示H(小时)M(分钟)使用P代替D(天)Ex PK15H,P5D}

[TASK] | Set-ScheduledTask:启用任务

$action = New-ScheduledTaskAction -Execute Powershell.exe
$trigger = New-ScheduledTaskTrigger -Weekly -At 6:30AM -DaysOfWeek 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday' 
$task = Register-ScheduledTask -TaskName "TESTTASK" -Trigger $trigger -Action $action -RunLevel Highest
$task.Triggers.Repetition.Duration = "PT15H" 
$task.Triggers.Repetition.Interval = "PT15M"
$task | Set-ScheduledTask -User "USERNAME" -Password "PASSWORD"