Windows Management Instrumentation (WMI)

From ICO wiki
Jump to navigationJump to search

Koostamisel



Windows Management Instrumentation - WMI

Sissejuhatus

Windows Management Instrumentation (WMI) on mõeldud andmete ja operatsioonide juhtimiseks skriptide abil ning asendab efektiivselt erinevaid jõudluskontrolli tööriistu.

WMI kasutamine süsteemiinfo hankimiseks

WMI abil on võimalik uurida arvutite süsteemiinfot ja on eriti kasulikuks muutub ta info hankimisel üle arvutivõrgu. WMI abil on võimalik mitte ainult saada teavet, vaid ka juhtida erinevaid arvutiressursse (nii riist- kui ka tarkvara, teenuseid ja kasutajakontosid).

WMI kasutamiseks on vajalik koostada skript, mis kasutab WMI skripti teeke ((WMI scripting library). Kasutada võib erinevaid skriptimiskeeli nagu Windows Script Host (WSH), VBScript, Microsoft JScript jne. Skripte on võimalik kirjutada väga erinevate ressursside nagu sündmuste logimise, failisüsteemide, printerite, protsesside ja teenuste, registri seadete, turvaseadete, ajakava jne jälgimiseks.

Näiteks selline lihtne skript kuvab vaba füüsilise mälu suuruse:

strComputer = "."
Set objSWbemServices = GetObject("winmgmts:\\" & strComputer)
Set colSWbemObjectSet = objSWbemServices.InstancesOf ("Win32_OperatingSystem")
For Each objSWbemObject In colSWbemObjectSet
Wscript.Echo "Free physical memory: " & objSWbemObject.FreePhysicalMemory & " KB."
Next

Tulemus:

Jälgida tuleks seda, milline skriptimootor parajasti arvutis töötab, näiteks WScript kuvab järgmise skriptiga:

strComputer = "."
Set objSWbemServices = GetObject("winmgmts:\\" & strComputer)
Set colSWbemObjectSet = objSWbemServices.InstancesOf ("Win32_Service")
For Each objSWbemObject In colSWbemObjectSet
Wscript.Echo "Display Name: " & objSWbemObject.DisplayName & vbCrLf & " State: " & objSWbemObject.State & vbCrLf & " Start Mode: " & objSWbemObject.StartMode
Next

ekraanile kõik arvutis töötavad teenused (services), nende seisundi (started või stopped) ja stardirežiimi

<- Selliseid aknaid tuleb ekraanile palju

Otstarbekam on lülituda ümber skriptimootorile Cscript (käsuga: cscript //H:Cscript), mis kuvab tulemuse konsooliaknas:

Järgmine skript küsib arvuti nime ja seejärel uurib selle printereid, protsesse ja protsessori tüüpi. Oluline on siin see, et omades piisavaid õigusi ja sisestades võrguarvuti nime on võimalik uurida ka võrguarvuti omadusi:

computer = inputbox ("Millist arvutit tahad uurida? (Enter sama arvuti puhul)","Computer")
set WMI = GetObject("WinMgmts://" & computer)
If computer="" then computer = "this computer"
List = ""
Set objs = WMI.InstancesOf("Win32_Printer")
For each obj in objs
List = List & obj.Caption & ", "
Next
List=Left(List, Len(List)-2)
MsgBox List,64,"Printerid arvutil " & computer
List = ""
Set objs = WMI.InstancesOf("Win32_Process")
For each obj in objs
List = List & obj.Description & ", "
Next
List=Left(List, Len(List)-2)
MsgBox List,64,"Protsessid arvutil " & computer
List = ""
set objs = WMI.InstancesOf("Win32_Processor")
For each obj in objs
List = List & obj.Description & ", "
Next
List=Left(List, Len(List)-2)
MsgBox List,64,"Protsessor arvutil " & computer

WMI koosneb kolmest põhifunktsioonist: Common Information Model Object Manager (CIMOM)ehk WMI teenus, Common Information Model (CIM) repository ehk WMI varamu ja WMI provaideritest (providers)

WMI kasutamine arvuti juhtimiseks

WMI-d saab kasutada arvuti juhtimiseks, st. paljude erinevate teenuste administreerimiseks nagu Active Directory domeeniteenused, ketta- ja perifeeriaseadmed, sündmuste logid, failid, kaustad, failisüsteemid, võrguparameetrid, op.süsteemi alamsüsteemid, jõudlusloendurid (performance counters), printerid, protsessid, registriseaded, turvalisus jne.

WMI klassid

WMI klassid on arvuti füüsiliste omaduste või teenuste väljunditeks. Iga klass võib sisaldada ühe või mitu objekti või juhtumit, kusjuures objektid on varustatud atribuutidega.

http://msdn.microsoft.com/en-us/library/aa394554%28VS.85%29.aspx

Täielik ülevaade WMI viidetest: http://msdn.microsoft.com/en-us/library/aa394572%28VS.85%29.aspx

Koostaja

Einar Kivisalu DK21