V programu Windows Task Scheduler (Task Scheduler) je mogoče izvajati naloge tako po urniku kot takrat, ko se v dnevniku pojavi določen dogodek (opisan v članku "Sprožilci dogodkov v sistemu Windows"). V tem članku bomo ugotovili, kako izvajati mehanizem, ki ga izvaja samodejni zagon opravila planerja po zaključku druge naloge. Razmislimo o poenostavljenem algoritmu za nastavljanje odvisnosti za zagon nalog planerja, ki ga lahko prilagodite svoji nalogi.
V mojem primeru je bilo treba po dokončanju enega skripta zagnati še en skript iz drugega uporabnika. Zato teh ukrepov ni bilo mogoče združiti v eni nalogi.
Recimo, da moramo opraviti nalogo načrtovalca Pong po zaključku naloge Ping. Ko začnete in končate katero koli nalogo, se podatki o tem dogodku zapišejo v sistemski dnevnik. Osredotočili se bomo na pojav dogodka zaključka Pingove naloge.
Odprimo konzolo Naloga Planer (Taskschd.msc), poiščite in izberite dogodek Ping in pojdite na zavihek na spodnji plošči Zgodovina, ki vsebuje podatke o vseh dogodkih, povezanih s to nalogo. Zanima nas dogodek s kodo 102 (Naloga končana) - ki se ustvari po opravljeni nalogi.
Odprimo podroben opis dogodka tako, da odpremo zavihek Podrobnosti in preklopite v način prikaza dogodkov XML (Pogled XML) S pomočjo podatkov XML lahko dobite vse podrobnosti o dogodku, ki ga potrebujemo za izdelavo filtra. Zlasti nas zanimajo:
EventID: 102
Ime ponudnika: Microsoft-Windows-TaskScheduler
Kanal: Microsoft-Windows-TaskScheduler / Operative
Ime opravila: \ ping
Ko ustvarjamo sprožilec za opravilo Pong, moramo ustvariti pogoj za sprožitev opravila, ko se v dnevniku pojavi dogodek 102 (sprožilec opravila Na dogodku) Toda težava je v tem, da se EventID 102 pojavi, ko je katera koli naloga opravljena in ne samo naloga Ping.
Vendar pa je mogoče ustvariti bolj prilagodljive pogoje za izbor dogodkov (Po meri), ko standardni filter ne pomaga dovolj jasno izbrati dogodka. Kliknite na gumb Nov filter dogodkov:
Ustvarimo nov filter dogodkov in določimo predhodno prejete podatke iz predstavitve XML dogodka.
Dnevniki dogodkov: Microsoft-Windows-TaskScheduler / Operative
Vir dogodkov: Načrtovalnik opravil
Kategorija nalog: Naloga je končana
Nato pojdite na zavihek XML in vidimo naslednjo XML predstavitev filtra (XPath):
* [Sistem [Ponudnik [@ Name = 'Microsoft-Windows-TaskScheduler'] in Task = 102]]
Kodo Xpath zamenjamo z naslednjim filtrirnim dnevnikom za prisotnost dogodka TaskCompleted iz naloge \ ping:
* [Sistem [Ponudnik [@ Name = 'Microsoft-Windows-TaskScheduler'] in Task = 102]]
Ko dodate ta dogodek, poskusite zagnati nalogo pinga. Po končani nalogi se mora naloga pong takoj začeti..
Spodaj je predstavljeno dekodiranje XPath.
Članek je napisan na podlagi gradiva za objavo Zagon načrtovane naloge za drugim (http://blogs.msdn.com/b/davethompson/archive/2011/10/25/running-a-scheduled-task-after-another.aspx)