Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell新建ScheduledTaskTrigger循环任务,带-RepetitionInterval_Powershell_Scheduled Tasks_Eventtrigger - Fatal编程技术网

Powershell新建ScheduledTaskTrigger循环任务,带-RepetitionInterval

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

我发现与ScheduledTask cmdles相关的错误给出了极其隐晦的错误。 我想安排一个测试任务,每1分钟运行一次,然后永远重复。 以下是我正在尝试的,但没有成功:

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 *