Windows Management Instrumentation (WMI): Difference between revisions
Line 74: | Line 74: | ||
WMI koosneb kolmest põhifunktsioonist: Common Information Model Object Manager | WMI koosneb kolmest põhifunktsioonist: Common Information Model Object Manager | ||
(CIMOM)ehk WMI teenus, Common Information Model (CIM) repository ehk WMI varamu ja WMI tarnijad (providers) | (CIMOM) ehk WMI teenus, Common Information Model (CIM) repository ehk WMI varamu ja WMI tarnijad (providers) | ||
===WMI tarnijad (providers)=== | ===WMI tarnijad (providers)=== |
Revision as of 19:33, 24 October 2011
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-d võib pidada tsentraliseeritud juhtimis- ja jälgimissüsteemi üheks peamiseks tehnoloogiaks Windows platvormi kasutavatel süsteemidel.
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 tarnijad (providers)
WMI tarnijad (providers)
WMI tarnijad, nagu näiteks Win32 ja EventLog toimivad vahendajatena CIMOMi ja juhitava ressursi vahel. Tarnijad pärivad informatsiooni WMI-juhitavatelt ressurssidelt ja saadavad seda omalpoolt ressurssidele. Oluline on teada, et WMI päästab suhtlemisel Win32 API-ga keerukamate programmeerimisvõtete kasutamisest, sest WMI tõlgib standartsed käsud keerukamateks käskudeks, millest API-d aru saavad.
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