Как запустить запланированную задачу после завершения другой задачи

Планировщик задач Windows позволяет запускать задачи как по расписанию, так и при появлении определенного события в окне просмотра событий (с помощью триггеров событий Windows). В этой статье мы покажем вам, как создать запланированную задачу, которая автоматически запускается после успешного завершения другой задачи.

В моем примере я не мог объединить две задачи в одну, поскольку мне нужно было запустить пакетный сценарий от имени другого пользователя после успешного завершения первого сценария (задачи).

Предположим, вы хотите запустить Pong задача планировщика после Ping задание успешно завершено.

  1. Откройте Задание Планировщик консоль (Taskschd.msc) и найдите Ping задача;
  2. Нажмите на кнопку История вкладка на нижней панели задач. Она содержит полную историю событий, связанных с этой запланированной задачей; задание sheduler выполнено id события 102задание sheduler выполнено событие id 102
    Если планировщик задач показывает только История (отключено) вкладке, вам нужно нажать Включить Вся история задач в правой панели «Действия». После этого все события задачи будут отображаться на вкладке История.
  3. Нам нужно событие с идентификатором события 102 (Task completed), который появляется после успешного завершения задания (Task Scheduler successfully finished);
  4. Откройте свойства этого события, перейдите к пункту Подробности , и переключитесь на вкладку Вид XML события. Мы будем использовать следующие данные из XML при построении оператора условия для новой запланированной задачи:
EventID: 102
Provider-Name: Microsoft-Windows-TaskScheduler
Channel: Microsoft-Windows-TaskScheduler/Operational
TaskName: \MyTasks\Ping

свойства события xml представлениесвойства события xml вид

Убедитесь, что Эксплуатация Журналы включены для событий планировщика задач. Откройте консоль Event Viewer (eventvwr.msc) и перейдите в журнал приложений и служб -> Microsoft -> Windows -> Task Scheduler -> Operational. Щелкните элемент правой кнопкой мыши и выберите Включить журнал вариант. включение журналов событий планировщика заданийвключить журналы событий планировщика задач

Теперь вы можете создать Понг запланированное задание.

При создании триггера для задания Pong необходимо указать условие для запуска задания при появлении события 102 (New Trigger -> По событию). Но проблема в том, что EventID 102 появляется после завершения любой задачи, а не только задачи Ping.

шедулер задач: создание триггера событийtask sheduler: create event trigger

Вы можете создать более гибкие условия для выбора событий (Пользовательские), когда стандартный фильтр не позволяет достаточно точно выбрать событие. Нажмите на кнопку Новый Событие Фильтр кнопка.

Создайте новый фильтр, указав ранее полученные данные из XML-представления события.

  • Журналы событий: Microsoft-Windows-TaskScheduler/Operational
  • Источник событий: TaskScheduler
  • Категория задач: Задание выполнено

новый фильтр событий задачи по журналу планировщика задачновый фильтр событий задачи по журналу планировщика заданий

Нажмите кнопку XML вкладка. На ней будет показано XML-представление вашего фильтра (XPath):

<QueryList>
<Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
<Select Path="Microsoft-Windows-TaskScheduler/Operational">*[System[Provider[@Name="Microsoft-Windows-TaskScheduler"] and Task = 102]]</Select>
</Query>
</QueryList>

Проверьте Редактирование запроса вручную вариант. Вам необходимо привязать фильтр к задаче \MyTasks\Ping. Для этого замените следующую строку в XML-фильтре:

*[System[Provider[@Name="Microsoft-Windows-TaskScheduler"] and Task = 102]]

на:

*[EventData [@Name="TaskSuccessEvent"][Data[@Name="TaskName"]='\MyTasks\Ping']]

редактировать фильтр событий: добавить зависимостьредактировать фильтр событий: добавить зависимость

Сохраните настройки фильтра на вкладке Triggers (Custom Event Filter) и сохраните задачу Pong.

Теперь попробуйте запустить задачу Ping (вручную, по расписанию или с помощью PowerShell): Start-ScheduledTask mytasks\ping). Когда задача Ping успешно завершится, задание Pong будет запущено немедленно.

запуск запланированного задания после другогозапуск запланированной задачи после другой

Формат XPath показан ниже.

Объяснение XPathОбъяснение XPath

Таким образом, можно создавать целые цепочки задач для последовательного запуска заданий планировщика. Аналогичным образом можно создавать любые другие зависимости в задачах планировщика Windows. Например, при успешном завершении задания резервного копирования выполняется один сценарий, а если резервное копирование не удалось, необходимо запустить сценарий для очистки или исправления текущего состояния.

В одном из предыдущих постов мы рассмотрели другой сценарий, который позволяет запускать программу/скрипт, если в Windows была запущена или закрыта другая программа.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *