U Windows Task Scheduleru (Task Scheduler) moguće je izvoditi zadatke i po rasporedu i kada se određeni događaj pojavi u dnevniku (opisano u članku "Okidači događaja u sustavu Windows"). U ovom ćemo članku shvatiti kako implementirati mehanizam koji implementira automatski pokretanje zadatka planiranja nakon dovršetka drugog zadatka. Razmotrimo pojednostavljeni algoritam za postavljanje ovisnosti za pokretanje zadataka planera, koji možete prilagoditi svom zadatku.
U mom slučaju, nakon dovršetka jedne skripte, bilo je potrebno pokrenuti drugu skriptu od drugog korisnika. Stoga se te akcije ne mogu kombinirati u jednom zadatku.
Pretpostavimo da moramo pokrenuti zadatak planera pong po završetku zadatka Ping. Kada započinjete i završavate bilo koji zadatak, informacije o ovom događaju bilježe se u zapisnik sustava. Usredotočit ćemo se na izgled događaja završetka Ping posla.
Otvorimo konzolu zadatak raspored (Taskschd.msc), pronađite i odaberite događaj Pinga i idite na karticu na donjoj ploči Povijest, koji sadrže podatke o svim događajima povezanim s tim zadatkom. Zanima nas događaj s šifrom 102 (Zadatak završen) - koji se generira nakon što je zadatak dovršen.
Otvorimo detaljan opis događaja odlaskom na karticu detalj i prebacite se na način prikaza XML događaja (XML prikaz). Pomoću XML podataka možete dobiti sve detalje o događaju koji nam je potreban za izgradnju filtra. Posebno nas zanimaju:
EventID: 102
Naziv pružatelja usluga: Microsoft-Windows-TaskScheduler
Kanal: Microsoft-Windows-TaskScheduler / Operativni
Zadatak: \ ping
Kada kreiramo okidač za Pong posao, moramo stvoriti uvjet okidača za posao kada se događaj 102 pojavi u dnevniku (Okidač posla Na događaju). No problem je što se EventID 102 pojavljuje kada je bilo koji zadatak dovršen, a ne samo zadatak Pinga.
Međutim, moguće je stvoriti fleksibilnije uvjete za izbor događaja (običaj), kad standardni filtar ne pomogne dovoljno jasno odabrati događaj. Kliknite na gumb Novi filtar događaja:
Kreirajmo novi filtar događaja, specificirajući prethodno primljene podatke iz XML reprezentacije događaja.
Evidencija događaja: Microsoft-Windows-TaskScheduler / Operativni
Izvor događaja: Raspored zadataka
Kategorija zadataka: Zadatak završen
Zatim idite na karticu XML i vidimo sljedeći XML prikaz filtra (XPath):
* [Sustav [Pružatelj [@ Name = 'Microsoft-Windows-TaskScheduler'] i zadatak = 102]]
Xpath kôd zamjenjujemo sljedećim logom filtriranja za prisustvo događaja TaskCompleted iz \ ping zadatka:
* [Sustav [Pružatelj [@ Name = 'Microsoft-Windows-TaskScheduler'] i zadatak = 102]]
Nakon dodavanja ovog događaja, pokušajte pokrenuti zadatak pinga. Po završetku zadatak ponga trebao bi započeti odmah..
XPath dekodiranje prikazano je u nastavku.
Članak je napisan na temelju materijala za objavu Pokretanje rasporeda zadatka iza drugog (Http://blogs.msdn.com/b/davethompson/archive/2011/10/25/running-a-scheduled-task-after-another.aspx)