Rulați lucrarea de planificare după ce ați terminat un alt loc de muncă, ferestre pentru administratorii de sistem

În Planificatorul de sarcini al Windows (Task Scheduler), este posibilă executarea sarcinilor atât la un program, cât și la apariția unui anumit eveniment în jurnal (descris în articolul "Triggers de evenimente în Windows"). În acest articol, vom afla cum să implementăm un mecanism care pornește automat lucrarea planificatorului când o altă sarcină este finalizată. Luați în considerare un algoritm simplificat pentru setarea dependențelor de programare a planificatorului de sarcini, pe care le puteți adapta la sarcina dvs.

În cazul meu, a fost necesar după finalizarea unui script pentru a rula un alt script de la un alt utilizator. Prin urmare, aceste acțiuni nu au putut fi combinate într-o singură sarcină.

Să presupunem că trebuie să executăm lucrarea Pong Scheduler după finalizarea lucrării Ping. Când porniți și terminați orice activitate, sistemul înregistrează informații despre acest eveniment. Vom fi doar ghidați de apariția evenimentului de finalizare a misiunii Ping.

Deschideți consola TaskScheduler (Taskschd.msc), găsiți și selectați evenimentul Ping, iar în panoul de jos mergeți la fila Istoric. Informații despre toate evenimentele asociate cu această sarcină. Suntem interesați de evenimentul cu codul 102 (Task completed) - care este generat după finalizarea sarcinii.

Rulați lucrarea de planificare după ce ați terminat un alt loc de muncă, ferestre pentru administratorii de sistem

Să deschidem descrierea detaliată a evenimentului făcând clic pe fila Detalii și schimbând modul de vizualizare XML al evenimentului (Vizualizare XML). Cu ajutorul datelor XML, puteți obține toate detaliile unui eveniment de care avem nevoie pentru a construi un filtru. În special, suntem interesați de:

Rulați lucrarea de planificare după ce ați terminat un alt loc de muncă, ferestre pentru administratorii de sistem
Atunci când creați un declanșator pentru o lucrare Pong, trebuie să creați o condiție pentru ca sarcina să se declanșeze atunci când evenimentul 102 apare în jurnal (pe declanșator de evenimente). Dar problema este că EventID 102 apare atunci când îndepliniți orice sarcină, nu doar Ping.

Rulați lucrarea de planificare după ce ați terminat un alt loc de muncă, ferestre pentru administratorii de sistem

Cu toate acestea, este posibil să se creeze condiții mai flexibile pentru selectarea evenimentelor (personalizat), atunci când filtrul standard nu ajută la selectarea unui eveniment destul de clar. Faceți clic pe butonul Filtru evenimente noi:

Rulați lucrarea de planificare după ce ați terminat un alt loc de muncă, ferestre pentru administratorii de sistem

Creați un nou filtru de evenimente, specificând datele primite anterior din vizualizarea XML a evenimentului.

Jurnal evenimente. Microsoft-Windows-TaskScheduler / Operational

Sursă eveniment. TaskScheduler

Categoria de sarcini. Activitatea a fost finalizată

Rulați lucrarea de planificare după ce ați terminat un alt loc de muncă, ferestre pentru administratorii de sistem
Apoi mergem la fila XML și vedem reprezentarea XML a filtrului (XPath):

Rulați lucrarea de planificare după ce ați terminat un alt loc de muncă, ferestre pentru administratorii de sistem

Să schimbăm codul Xpath în următorul jurnal de filtrare pentru evenimentul TaskCompleted din lucrarea \ ping:

Rulați lucrarea de planificare după ce ați terminat un alt loc de muncă, ferestre pentru administratorii de sistem
După adăugarea acestui eveniment, încercați să executați sarcina de ping. La finalizarea acestuia, task-ul pong ar trebui să înceapă imediat.

Interpretarea lui XPath este prezentată mai jos.

Host Host Desktop

Curățarea automată a jurnalelor IIS cu PowerShell

Rezolvăm problema conectării la serverul VPN L2TP / IPSec în spatele NAT

Rezoluție: 1346 x 733 56 interogări. 0,756 sec 23,41 MB

MAXCACHE: 0,4MB / 0,00036 sec