每天重复使用Powershell v3 New-JobTrigger

sca*_*ega 6 powershell

Powershell v3附带了所有这些新的作业调度cmdlet.它们看起来很棒,但是我在创建特定触发器时遇到了麻烦.我需要每天运行一份工作,每小时重复一次,持续一段时间.

使用Task-Scheduler UI非常简单,但我找不到New-JobTrigger cmdlet的方法.

如果我使用Daily参数集,我没有Repetition选项:

New-JobTrigger [-Daily] -At <DateTime> [-DaysInterval <Int32> ] [-RandomDelay <TimeSpan> ] [ <CommonParameters>]
Run Code Online (Sandbox Code Playgroud)

如果我使用Once参数集,我就不能使用Daily选项

New-JobTrigger [-Once] -At <DateTime> [-RandomDelay <TimeSpan> ] [-RepetitionDuration <TimeSpan> ] [-RepetitionInterval <TimeSpan> ] [ <CommonParameters>]
Run Code Online (Sandbox Code Playgroud)

我需要的,但显然不起作用,是两者之间的混合.例如:

New-JobTrigger -Daily -At xxxx -RepetitionDuration (New-TimeSpan -Hours 5) -RepetitionInterval (New-TimeSpan -Hours 1)
Run Code Online (Sandbox Code Playgroud)

可能吗?也许为同一份工作混合几个触发器?

Mic*_*mas 5

这对我有用:

注意 - 我知道原始问题与New-JobTrigger有关.意图是提供一个可以转换为New-JobTrigger的可能解决方案,因为这个问题适用于两者.

$A = New-ScheduledTaskAction -execute "powershell" -argument "-nologo -noprofile -noninteractive C:\MyScript.ps1"
$T = New-ScheduledTaskTrigger -Once -At 03:00AM 
Register-ScheduledTask -TaskName StartBasicServices_Local -Trigger $T -Action $A -description "MyScript" -User "NT AUTHORITY\SYSTEM" -RunLevel 1      
$T.RepetitionInterval = (New-TimeSpan -Minutes 5)
$T.RepetitionDuration = (New-TimeSpan -Days 1)
Set-ScheduledTask StartBasicServices_Local -Trigger $T
Run Code Online (Sandbox Code Playgroud)

  • 是的,除了它没有做问题所要求的.他正在尝试创建每小时运行的每日触发器.这标记为什么被接受?对我来说这看起来像是你安排它运行一天,每5分钟一次.我错过了什么吗? (3认同)