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

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

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

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

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

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

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

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

Есть идеи?

2 ответа

Решение

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

  1. Добавьте триггер:введите описание здесьОбязательно установите текущую дату и 00:00:00 в качестве времени начала
  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
Другие вопросы по тегам