Managementul proceselor Wmi

Exemple de cod din acest articol sunt furnizate în limba VBScript pentru scripturi administrative Windows. Exemplele de mai jos nu epuizează toate capacitățile claselor care sunt menționate în ele (sunt folosite). Pentru mai multe informații, vă rugăm să contactați MSDN. De obicei, căutarea MSDN pentru numele unei clase vă permite să obțineți rapid o listă (descriere) a tuturor proprietăților și metodelor sale.







Utilizând scripturile WMI, puteți rula procese atât pe mașinile locale, cât și pe cele de la distanță (în plus, pe o mașină la distanță, puteți rula procesele în cadrul unui cont arbitrar). WshController obiect standard, disponibil în Windows Script Host, puteți crea, de asemenea procese de pe stația de lucru de la distanță, dar acest lucru necesită presetarea ambele computere și nu există nici o posibilitate de a întrerupe în mod forțat procesul de funcționare. În legătură cu cele de mai sus, este preferabilă utilizarea scripturilor WMI pentru a rula procesele.

Clasa Win32_Process reprezintă procesele. Următorul script oferă informații despre procesele care rulează pe mașina specificată, utilizând câteva proprietăți ale clasei Win32_Process. Punctul din linia WMI-monitor indică conectarea la computerul local. Înlocuirea punctului cu numele computerului dorit, vă puteți conecta la orice computer din rețeaua locală.

Unele metode utile ale clasei Win32_Process sunt:

Creați (șirul CommandLine, șir CurrentDirectory, Win32_ProcessStartup ProcessStartupInformation, uint32 ProcessId)

Metoda creează un proces nou și returnează 0 dacă procesul a fost creat cu succes sau un cod de eroare. Opțiuni:
  • CommandLine este linia de comandă pentru execuție.
  • CurrentDirectory - dosar de lucru. Dacă valoarea parametrului este NULL, calea specificată în CommandLine va fi utilizată.
  • ProcessStartupInformation - configurație inițială a procesului, obiect de clasă Win32_ProcessStartup.
  • ProcessId - parametru de ieșire, unde sistemul pune ID-ul procesului. Valoarea acestei proprietăți este relevantă din momentul creării procesului până la sfârșitul funcționării sale.






GetOwner (șir Utilizator, domeniu Domeniu)

Metoda primește acreditările proprietarului (numele de utilizator și numele de domeniu) în care rulează procesul și returnează 0 dacă operația a avut succes sau un cod de eroare. Opțiuni:
  • User - parametrul de ieșire, unde sistemul pune numele utilizatorului.
  • Domeniul este parametrul de ieșire, unde sistemul plasează numele domeniului sau al computerului.

Metoda preia identificatorul de securitate (SID) al proprietarului procesului și returnează 0 dacă operația a avut succes sau un cod de eroare. Sistemul plasează identificatorul de securitate în parametrul de ieșire Sid.

Metoda termină forțat procesul și toate procesele copilului său și returnează 0 dacă operația a avut succes sau un cod de eroare. Parametrul Expunere specifică codul de ieșire al procesului și toate firele acestuia.

Următorul script demonstrează cel mai simplu început al procesului (notepad.exe) din contul curent de pe mașina locală. Înlocuind punctul din meniul WMI cu numele computerului dorit, puteți porni procesul pe orice computer din rețeaua locală.

Următorul script afișează începutul procesului (notepad.exe) sub contul specificat de pe mașina specificată:

Clasa Win32_ProcessStartup vă permite să specificați parametrii inițiali pentru pornirea unui nou proces (de exemplu, starea ferestrei, prioritate etc.). Următorul script arată începutul procesului (notepad.exe) în fereastra maximizată:

Trebuie remarcat faptul că atunci când procesul este pornit utilizând metodele descrise mai sus (utilizând clasa Win32_Process) pe computerul la distanță, interacțiunea interactivă a utilizatorului cu programul rulat este exclusă. Dacă programul deschide o fereastră vizuală pe computerul la distanță, această fereastră nu va fi niciodată accesibilă (fereastra va fi întotdeauna invizibilă). Astfel, pe un calculator la distanță, această metodă are sens să se utilizeze numai pentru programele batch.

Pentru a rula vb- performanță sau js-script de pe computerul la distanță, atunci când apelați Create (), utilizați comanda tipul de linie „wscript.exe c: \ filename.vbs“, cu fișierul script executabil trebuie să fie amplasat pe un disc local al unui computer la distanță.

Următorul script demonstrează posibilitatea forțării proceselor să se termine utilizând metoda Terminate (). Înlocuind punctul din meniul WMI cu numele computerului dorit, puteți întrerupe cu forța procesele pe orice computer din rețeaua locală. Scriptul termină toate procesele notepad.exe, dacă există:

Clasa Win32_ScheduledJob vă permite să începeți procesele, făcând posibilă interacțiunea interactivă cu utilizatorul (inclusiv pe computerul la distanță). De exemplu, următorul script va porni calculatorul calc.exe pe calculatorul specificat (în acest caz - local) la un minut după ora curentă, creând un job unic care va fi executat în cadrul utilizatorului SYSTEM. Fereastra programului lansat va fi disponibilă pentru interacțiunea interactivă cu utilizatorul curent, care funcționează pe calculatorul specificat în acest moment.

Pentru informații mai detaliate despre clasa Win32_ScheduledJob, vă rugăm să contactați MSDN.







Articole similare

Trimiteți-le prietenilor: