Создание запланированной задачи в Windows, которая будет выполняться через определенные промежутки времени


16

Кажется, я немного запутался в Task Schedulerнастройках триггера. (Я нахожусь на Windows Server 2008 Web)

Я хочу создать задачу, которая будет запускаться каждые 5 минут, независимо от того, вошел ли пользователь в систему или нет, и она будет возвращаться к графику при перезагрузке компьютера.

Итак, я настроил все по мере необходимости, но обратите внимание, что есть два варианта для моего триггера:

  1. Начните задание At Startup(а затем используйте, Advanced Settingsчтобы повторять каждые пять минут до бесконечности)
  2. Начните задание At task creation/modification(а затем используйте, Advanced Settingsчтобы повторять каждые пять минут до бесконечности)

Если я выберу (1), он не запустится сразу. Я должен перезагрузиться, что я не хочу делать.

Если я выберу (2), он сразу запустится, но не будет после следующей перезагрузки.

Если я создаю триггеры для обоих (1) и (2), это может сработать, но когда я буду когда-либо изменять задачу в будущем, будут ли запущены два ее экземпляра при срабатывании обоих триггеров? Или это отменит 5-минутные интервалы, которые начались с момента запуска? Я не хочу, чтобы это случилось.

Есть идеи?

Ответы:


25

Я бы попробовал это так:

  1. Добавить триггер: введите описание изображения здесь обязательно установите текущую дату и 00:00:00 в качестве времени начала
  2. Убедитесь, что задача запускается как можно скорее, если запуск был пропущен: введите описание изображения здесь

5
Благодарю. «Беги как можно быстрее, если старт пропущен» - вот ключ.
Росс

2

Вот как создать такую ​​запланированную задачу с помощью 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

Здравствуйте, я думаю, что это работает, только если Длительность бесконечна - ([временной интервал] :: MaxValue)
Майкл
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.