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)
可能吗?也许为同一份工作混合几个触发器?
这对我有用:
注意 - 我知道原始问题与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)
| 归档时间: |
|
| 查看次数: |
9245 次 |
| 最近记录: |