Powershell新建ScheduledTaskTrigger循环任务,带-RepetitionInterval
我发现与ScheduledTask cmdles相关的错误给出了极其隐晦的错误。 我想安排一个测试任务,每1分钟运行一次,然后永远重复。 以下是我正在尝试的,但没有成功:Powershell新建ScheduledTaskTrigger循环任务,带-RepetitionInterval,powershell,scheduled-tasks,eventtrigger,Powershell,Scheduled Tasks,Eventtrigger,我发现与ScheduledTask cmdles相关的错误给出了极其隐晦的错误。 我想安排一个测试任务,每1分钟运行一次,然后永远重复。 以下是我正在尝试的,但没有成功: cls #$Action = New-ScheduledTaskAction -Execute "e:\Scripts\TestClusteredTask.cmd" $DurationTimeSpan = New-TimeSpan -Minutes 1 $DurationTimeSpanIndefinite = ([Time
cls
#$Action = New-ScheduledTaskAction -Execute "e:\Scripts\TestClusteredTask.cmd"
$DurationTimeSpan = New-TimeSpan -Minutes 1
$DurationTimeSpanIndefinite = ([TimeSpan]::MaxValue)
$DurationTempTest = New-TimeSpan -Days 1000
$Trigger = New-ScheduledTaskTrigger -Daily -At "00:01" -RepetitionInterval $DurationTimeSpan -RepetitionDuration $DurationTempTest
我也试过:
$Trigger = New-ScheduledTaskTrigger -Daily -At "00:01" -RepetitionInterval $DurationTimeSpan -RepeatIndefinitely
错误输出:
New-ScheduledTaskTrigger : Parameter set cannot be resolved using the specified named parameters.
At C:\Users\nwalters\Documents\AddTestClusteredTask.ps1:6 char:12
+ $Trigger = New-ScheduledTaskTrigger -Daily -At "00:01" -RepetitionInterval $Dura ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [New-ScheduledTaskTrigger], ParameterBindingException
+ FullyQualifiedErrorId : AmbiguousParameterSet,New-ScheduledTaskTrigger
我正在参考此网页以获取说明
Win 2012/R2上的Powerhsell版本4根据这是您正在使用的数据集
Parameter Set: Daily
New-ScheduledTaskTrigger [-Daily] -At <DateTime> [-DaysInterval <Int32> ] [-RandomDelay <TimeSpan> ] [ <CommonParameters>]
这就是为什么会出现歧义错误。它不知道您正在使用哪个参数集
FullyQualifiedErrorId : AmbiguousParameterSet,New-ScheduledTaskTrigger
因此,如果要使用这些其他参数,则需要指定
-Once
我发现你可以通过多个步骤来完成,例如:
$ST_A = New-ScheduledTaskAction –Execute "E:\Scheduled Tasks\pause.cmd"
$ST_T = New-ScheduledTaskTrigger -Once -At 0am
Register-ScheduledTask -TaskName "Pause_with_asJob2" -Action $ST_A –Trigger $ST_T
Disable-ScheduledTask -Taskname "Pause_with_asJob2"
$ST_T = New-ScheduledTaskTrigger -Once -At 03:00 -RepetitionDuration (new-timespan -hour 15) -RepetitionInterval (new-timespan -minutes 15)
Set-ScheduledTask -TaskName "Pause_with_asJob2" -Action $ST_A –Trigger $ST_T
$ST_T = New-ScheduledTaskTrigger -Daily -At 03:00
Set-ScheduledTask -TaskName "Pause_with_asJob2" -Action $ST_A –Trigger $ST_T
我发现您可以在将触发器链接到任务之前修改它。 我的脚本每天8点生成一个带有触发器的任务。每60分钟(1小时)重复一次任务,随机延迟30分钟:
$Prog = $env:systemroot + "\system32\WindowsPowerShell\v1.0\powershell.exe"
$Opt = "-nologo -noninteractive -noprofile -ExecutionPolicy BYPASS -file \\mydomain.local\NETLOGON\Monitoring\monitoring.ps1"
$Action = New-ScheduledTaskAction -Execute $Prog -Argument $Opt
$Trigger = New-ScheduledTaskTrigger -Daily -DaysInterval 1 -RandomDelay "00:30" -At "08:00"
$Trigger.Repetition = $(New-ScheduledTaskTrigger -Once -RandomDelay "00:30" -At "08:00" -RepetitionDuration "12:00" -RepetitionInterval "01:00").Repetition
$Principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
$Task = Register-ScheduledTask -Action $Action -Trigger $Trigger -Principal $Principal -TaskName "Monitor-PS1-V001" -Description "Starts Monitoring-Script" -Force
我搜索了一下,没有找到好的解决办法。
希望有人能利用我的“想法”
问候
罗伯特也许这可以帮助别人
$script="restart_Service"
$trigger=New-JobTrigger -Daily -At 3:00PM
$action=New-ScheduledTaskAction -Execute C:\temp\restart.ps1
Register-ScheduledTask -Action $action -TaskName $script -Description "to restart the service" -RunLevel Highest -Trigger $trigger
$Task.Triggers.Repetition.Duration = "P1D"
$Task.Triggers.Repetition.Interval = "PT30M"
$Task | Set-ScheduledTask -User "NT AUTHORITY\SYSTEM"
$Task = Get-ScheduledTask -TaskName "restart_Service"
$Task.Triggers.Repetition | fl *
我认为当您使用
每日
时,需要指定-DaysInterval
。查看参数集:每日
<代码>-DaysInterval 1可能就是您要查找的内容。您实际运行了吗?给我同样的错误。根据语法,什么是“CommonParameter”?如果我指定-Daily,like-RepetitionInterval和-RepetitionDuration这两个选项都不被接受,但它们都被-Once parm接受。我正在使用ClusteredScheduledTasks,因此无法使用任务计划程序GUI。但在GUI中,您可以选择“每日”单选按钮以及“每重复一次任务”,然后选择10分钟,持续时间为“1天”。不,我无法运行该按钮,因为我面前没有powershell 4.0。我的假设是基于technet的文章。我将拿出一台Windows8机器,看看我能做些什么。此外,这也不是GUI第一次帮助我隐藏完整的命令。我不确定它在3.0中是否有所不同。这种变化可以正常工作:$Trigger=New ScheduledTaskTrigger-one-At“00:01”-RepetitionInterval$DurationTimeSpan-RepetitionDuration$$DurationTest我只是不相信它会在机器重新启动后开始运行。Powershell 3.0不支持该cmdlet。我也是一个白痴,没有读我自己的答案。您不能使用-每日
和-重复
。我更新了我的答案,使其更有意义,因为它具有误导性。优秀的解决方案,与您一起登顶!
$script="restart_Service"
$trigger=New-JobTrigger -Daily -At 3:00PM
$action=New-ScheduledTaskAction -Execute C:\temp\restart.ps1
Register-ScheduledTask -Action $action -TaskName $script -Description "to restart the service" -RunLevel Highest -Trigger $trigger
$Task.Triggers.Repetition.Duration = "P1D"
$Task.Triggers.Repetition.Interval = "PT30M"
$Task | Set-ScheduledTask -User "NT AUTHORITY\SYSTEM"
$Task = Get-ScheduledTask -TaskName "restart_Service"
$Task.Triggers.Repetition | fl *