Instrumente de administrare Windows Administrator de sistem

Scenariile WMI 101

Scripturile WMI sunt o bibliotecă de interfețe de automatizare care se află deasupra Managerului obișnuit de obiect model de informații (CIMOM). Limbile de scripting compatibile COM (de exemplu, Windows Script, WS, ActivePerl) utilizează interfețe de automatizare pentru a accesa infrastructura WMI. Biblioteca Wbemdisp.dll moștenește obiecte, metode și proprietăți WMI de automatizare.







Pentru a accesa WMI prin biblioteca de script-uri WMI, trebuie să faceți trei pași care sunt comune celor mai multe scenarii WMI. Mai întâi, trebuie să vă conectați la serviciul Windows Management, al doilea este să obțineți instanțe de obiecte WMI gestionate, al treilea este să apelați metoda sau să accesați proprietățile obiectului gestionat. După cunoașterea interfețelor care sunt utilizate pentru a realiza acești trei pași, vă simțiți mult mai încrezători pe drumul spre vârful artei de scriere a scripturilor.

Luați în considerare un script WMI care demonstrează toți cei trei pași în acțiune. În lista 1 se afișează scriptul WMI Winmgmts.vbs.

Scriptul inițializează două variabile de șir - strComputer și strProcsToKill. Numele computerului țintă se află în variabila strComputer, iar variabila strProcsToKill este asociată cu numele procesului utilizat în script pentru a detecta și a opri toate procesele actuale cu acel nume. În exemplul de mai sus, numele procesului curent este notepad.exe.

Scriptul returnează fiecare instanță a procesului Win32_ ca SWbemObject din colecția SwbemObjectSet. SWbemObjectSet și SWbemObject sunt doar două dintre interfețele pe care le oferă biblioteca de scripting WMI. Deoarece SWbemObjectSet este o colecție, accesul la elementele sale poate fi organizat utilizând structura For. Fiecare limbă de scripting VBScript (a se vedea Listarea 1. eticheta B).

Marca B marchează partea din script care face ultimul pas pentru a accesa WMI. În bucla For. Fiecare acces la două proprietăți și o metodă este organizat, care sunt definite în clasa Win32_Process. În primul rând, atunci când scriptul rulează, pentru fiecare instanță a procesului Win32_, se afișează ID-ul și numele procesului ProcessID. Apoi numele instanței curente a procesului Win32_Process Name este comparat cu valoarea variabilei strProcsToKill. Dacă aceste valori sunt aceleași, atunci în script, se numește metoda de distrugere a instanței curente a procesului specificat în clasa procesului Win32_.

Pentru a înțelege cum funcționează proprietățile și metodele a peste 300 de clase care fac parte din Win32 CIM, să analizăm proprietățile și metodele din clasa Process Win32_. Vă reamintesc că o clasă este un șablon care definește proprietățile și comportamentul fiecărui exemplu al clasei. CIM conține toate definițiile de clasă pentru un mediu gestionat. În winmgmts.vbs, fiecare instanță a procesului utilizează metode și proprietăți Win32_Process, atât proprietate cât și moștenită. Acest lucru este valabil pentru toate clasele definite în CIM. Explorați clasele definite în CIM, pur și simplu utilizând programul wbemtest.exe. Pentru informații despre clase, consultați documentația WMI SDK.







Modelul obiect WMI

Figura 1 a modelului obiect WMI prezintă obiectele principale din biblioteca de script-uri WMI. Obiectele model oferă metode și proprietăți care sunt folosite în script-uri pentru a accesa și a prelua obiecte WMI. Luați în considerare pașii, deoarece winmgmts.vbs utilizează obiectele furnizate de acest model.

Instrumente de administrare Windows Administrator de sistem

Figura 1. Un model de obiecte script WMI.

Pasul 1: Conectați-vă la WMI. Pentru a vă conecta la WMI în scenariu, se utilizează un pictogramă winmgmts. Returnează un obiect SwbemServices. În loc să creați un link către obiectul Swbem Services, script-ul instanțiateste metoda InstancesOf a obiectului SwbemServices.

Tabelul 1 oferă o scurtă descriere a fiecărui obiect model WMI Scripting Object și referințe la site-ul Web Microsoft, unde puteți găsi informații detaliate despre metodele și proprietățile obiectului corespunzător.

Listing 2 arată locator.vbs, care efectuează aceeași sarcină ca winmgmts.vbs. Principala diferență dintre cele două exemple este că locator.vbs folosește obiectul SwbemLocator pentru a accesa obiectul SwbemServices, mai degrabă decât moneda WMI. Acest lucru explică de ce locator.vbs utilizează funcția VBcript CreateObject, în timp ce winmgmts.vbs utilizează funcția GetObject. Winmgmts.vbs utilizează GetObject pentru a lucra cu monitoare. Identificatorul de program Wbem Scripting.SWbemLocator în locator.vbs indică funcția CreateObject de care aveți nevoie pentru a crea un obiect SWbem sLocator.

Deși scenariile din listele 1 și 2 sunt funcționale, ele demonstrează efectul diferitelor mecanisme inerente bibliotecii WMI. Începătorii ar putea crede că sintaxa monitorului este prea confuză, deci la început pot lucra cu SWbem Locator. În termeni de funcționalitate, metoda Connect Server pe care o oferă SWbemLocator vă permite să distribuiți acreditările necesare pentru autentificarea conexiunii WMI. Sintaxa monitorului oferă posibilitatea de a efectua mai multe acțiuni într-o singură linie de cod.

Obiectele furnizate de biblioteca scriptului WMI vă permit să abordați temeinic dezvoltarea datelor WMI. În următorul articol, am de gând să mă uit la obiectele bibliotecii WMI cu funcții și mai bogate. Între timp, aș sugera ca cititorii, ca antrenament, să modifice fiecare dintre cele două liste în așa fel încât să extragă celelalte clase Win32. Sfat: În afară de schimbarea numelui de clasă care este trecut la metoda InstancesOf, trebuie să modificați corpul bucla For. Fiecare astfel încât metodele și proprietățile utilizate în bucla să coincidă cu metodele și proprietățile clasei selectate.







Articole similare

Trimiteți-le prietenilor: