В Windows Task Scheduler (Task Scheduler) е възможно да стартирате задачи както по график, така и когато в дневника се появява определено събитие (описано в статията „Събития за задействане в Windows“). В тази статия ще разберем как да приложим механизъм, който реализира автоматично стартиране на задачата за планиране при завършване на друга задача. Нека да разгледаме опростен алгоритъм за настройка на зависимости за стартиране на задачи на планиращи програми, които можете да адаптирате към вашата задача.
В моя случай, след като завършите един скрипт, беше необходимо да стартирате друг скрипт от под друг потребител. Следователно тези действия не могат да бъдат комбинирани в една задача.
Да предположим, че трябва да изпълним задача за планиране Pong след приключване на заданието Ping. Когато стартирате и завършите всяка задача, информация за това събитие се записва в системния дневник. Ще се съсредоточим върху появата на събитието за приключване на работата на Ping.
Нека отворим конзолата задача Scheduler (Taskschd.msc), намерете и изберете Ping събитието и отидете на раздела в долния панел история, съдържаща информация за всички събития, свързани с тази задача. Интересуваме се от събитие с код 102 (Задача завършена) - която се генерира след приключване на задачата.
Нека да отворим подробно описание на събитието, като отидем в раздела детайл и преминете към режим на изглед на събитията XML (XML изглед). Използвайки XML данни, можете да получите всички подробности за събитието, което трябва да изградим филтър. По-специално, ние се интересуваме от:
EventID: 102
Име на доставчика: Microsoft-Windows-TaskScheduler
Канал: Microsoft-Windows-TaskScheduler / Оперативен
TaskName: \ ping
Когато създаваме задействане за Pong задача, трябва да създадем условие за задействане на задачата, когато събитие 102 се появи в дневника (Job trigger На събитие). Но проблемът е, че EventID 102 се появява, когато всяка задача е завършена, а не само задачата Ping.
Възможно е обаче да се създадат по-гъвкави условия за избор на събития (обичай), когато стандартният филтър не помага да се избере събитието достатъчно ясно. Кликнете върху бутона Нов филтър за събития:
Нека създадем нов филтър за събития, като посочваме по-рано получени данни от XML представянето на събитието.
Дневници за събития: Microsoft-Windows-TaskScheduler / Operational
Източник на събитието: TaskScheduler
Категория на задачите: Задачата приключи
След това отидете на раздела XML и виждаме следното XML представяне на филтъра (XPath):
* [Система [доставчик [@ име = 'Microsoft-Windows-TaskScheduler'] и задача = 102]]
Заменяме кода Xpath със следния филтриращ дневник за присъствието на събитието TaskCompleted от задачата \ ping:
* [Система [доставчик [@ име = 'Microsoft-Windows-TaskScheduler'] и задача = 102]]
След като добавите това събитие, опитайте да стартирате задачата за ping. След приключване, задачата понг трябва да започне незабавно..
XPath декодирането е представено по-долу.
Статията е написана въз основа на материали за публикуване Изпълнение на планирана задача след друга (Http://blogs.msdn.com/b/davethompson/archive/2011/10/25/running-a-scheduled-task-after-another.aspx)