Запуск задания планировщика после завершения другого задания | Windows для системных администраторов

Запуск задания планировщика после завершения другого задания

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

В моем случае нужно было после завершения одного скрипта запустить другой скрипт из-под другого пользователя. Поэтому эти действия нельзя было объединить в рамках одного задания.

Предположим, нам нужно запустить задание планировщика Pong по завершению задания Ping. При запуске и окончании любого задания в журнал системы заносится информация об этом событии. Мы как раз и будем ориентироваться на появление события завершения задания Ping.

Откроем консоль Task Scheduler (Taskschd.msc), найдем и выберем событие Ping и в нижней панели перейдем на вкладку History, содержащую информацию обо всех событиях, связанных с данным заданием. Нас интересует событие с кодом 102 (Task completed) – которое генерируется после завершения задачи. История создания и запуска события планировщика

Откроем подробное описание события, перейдя на вкладку Detail и переключимся в XML режим представления события (XML View). По XML данным можно получить все детали события, которые нам понадобятся для построения фильтра. В частности, нас интересуют:

EventID: 102

Provider-Name: Microsoft-Windows-TaskScheduler

Channel: Microsoft-Windows-TaskScheduler/Operational

TaskName: \ping

XML представление событияПри создании триггера для задания Pong мы должны создать условие срабатывания задания при появлении в журнале события 102 (Триггер задания On an event). Но проблема в том, что EventID 102 появляется при завершении выполнения любого задания, а не только задания Ping.

Триггер события

Однако, есть возможность создать более гибкое условия для выбора событий (Custom), когда стандартный фильтр не помогает достаточно четко выбрать событие. Нажмите на кнопку New Event Filter:

Новый фильтр событий

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

Events Logs: Microsoft-Windows-TaskScheduler/Operational

Event source: TaskScheduler

Task category: Task completed

Параметры фильтра события планировщикаЗатем переходим на вкладку 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>

xml xpath фильтра

Заменим код Xpath на следующий, фильтрующий журнал на наличие события TaskCompleted от задания \ping:

<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>

Собственный фильтр xpath После добавления этого события попробуйте запустить задание ping. По его завершению должна немедленно запуститься задача pong.

Расшифровка XPath представлена ниже.

xpath структураСтатья написана по материалам публикации Running a Scheduled Task after another (http://blogs.msdn.com/b/davethompson/archive/2011/10/25/running-a-scheduled-task-after-another.aspx)

Еще записи по теме: Windows Server 2012
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:

Комментариев: 3

Оставить комментарий
  1. Михаил | 22.01.2016

    забыли :

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

    Ответить
    • itpro | 26.01.2016

      Спасибо, поправил — почему то XML код не тот скопировал.

      Ответить
  2. Alex Kornev | 23.01.2016

    Переписать «своими словами» конечно хорошо, но статьи, мне кажется, перестали быть идентичными.

    Ответить
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

Сказать Спасибо! можно на этой странице или (еще лучше) поделиться с друзями ссылкой на понравившуюся статью в любимой социальной сети(специально для этого на сайте присуствуют кнопки популярных соц. сетей).

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

Я не робот( Обязательно отметьте)



MAXCACHE: 0.24MB/0.00114 sec