web-dev-qa-db-ja.com

無期限に間隔で実行されるWindowsでスケジュールされたタスクを作成する

Task Schedulerトリガー設定に少し混乱しているようです。 (私はWindows Server 2008 Webを使用しています)

ユーザーがログインしているかどうかに関係なく、5分ごとに実行されるタスクを作成します。このタスクは、コンピューターの再起動時にスケジュールに戻ります。

必要に応じてすべて設定しましたが、トリガーには2つのオプションがあることに注意してください。

  1. タスクAt Startupを開始します(次にAdvanced Settingsを使用して5分ごとに無期限に繰り返します)
  2. タスクAt task creation/modificationを開始します(次にAdvanced Settingsを使用して5分ごとに無期限に繰り返します)

(1)を選択すると、すぐには実行されません。再起動する必要がありますが、これは不要です。

(2)を選択すると、すぐに実行されますが、次の再起動後は実行されません。

(1)と(2)の両方のトリガーを作成した場合、それは機能する可能性がありますが、将来タスクを変更した場合、両方のトリガーが起動されると、そのインスタンスが2つ実行されますか?それとも、起動後に開始された5分間隔を上書きしますか?どちらも起こりたくない。

何か案は?

16
Ross

私はこのようにしてみます:

  1. トリガーを追加します。 enter image description here 必ず現在の日付と00:00:00を開始時間として設定してください
  2. 開始を逃した場合は、タスクができるだけ早く実行されるようにしてください。 enter image description here
25
Der Hochstapler

PowerShellを使用してそのようなスケジュールされたタスクを作成する方法は次のとおりです。

$executable = "foo.exe"
$taskName = "My Task"
$action = New-ScheduledTaskAction -execute $executable
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).Date
$settings = New-ScheduledTaskSettingsSet -StartWhenAvailable
Register-ScheduledTask -TaskName $taskName -Trigger $trigger -Action $action -Setting $settings -description $description -User "NT AUTHORITY\SYSTEM" -RunLevel 1
$trigger.RepetitionInterval = (New-TimeSpan -Minutes 5)
$trigger.RepetitionDuration = (New-TimeSpan -Days 1000)
Set-ScheduledTask $taskName -Trigger $trigger
2
mbp