タスクスケジューラーでは以下のように、一日の中で繰り返し実行をするタスクのためのトリガーを作成することができます。
PowerShell で作ろうとした際に少し手間取ってしまったので備忘録を。
以下のようなスクリプトで作成できました。
$Trigger = New-ScheduledTaskTrigger -Daily -At "2014/4/1 00:00" $TaskName = "TestTask" $Action = New-ScheduledTaskAction -Execute "cmd.exe" -Argument "/C dir" Register-ScheduledTask -TaskName $TaskName -Trigger $Trigger -Action $Action -description "$TaskName" -User "NT AUTHORITYSYSTEM" -RunLevel 1 $Schedule = (Get-ScheduledTask -TaskName $TaskName).Triggers $Schedule.Repetition.Interval = "PT5M" $Schedule.Repetition.Duration = "P1D" Set-ScheduledTask $TaskName -Trigger $Schedule
最初は New-ScheduledTaskTrigger で、RepetitionDuration / RepetitionInterval を設定するのかと思っていたのですが、Daily のトリガーの場合はこのプロパティはないのですね。
ということで、一度タスクを登録してからトリガーを変更したところ、想定している設定ができました。
一回のみ実行で繰り返してもよかったのかもしれませんが、毎日のタスクでどうやって設定するのかがわからずちょっとハマってしまいました。