Кратак водич о Виндовс управљачкој инструментацији (ВМИ)

Windows Management Instrumentation (WMI) predstavlja infrastrukturni okvir za upravljanje informacijama i aktivnostima unutar operativnih sistema baziranih na Windows-u.

WMI takođe omogućava pristup podacima o upravljanju različitim komponentama operativnog sistema i softverskim proizvodima, kao što su System Center Operations Manager (SCOM) ili Windows Remote Management.

Šta je Windows Management Instrumentation (WMI)?

WMI je platforma koja se koristi za upravljanje i nadzor operativnog sistema, kao i drugih Microsoft aplikacija i usluga, bilo da se radi o personalnim računarima, serverima ili drugim mrežnim uređajima.

Ova platforma nudi sveobuhvatan, prilagodljiv i jednostavan programski interfejs, omogućavajući programski pristup informacijama i uslugama na računarima kojima upravlja Microsoft, kao i na drugim umreženim uređajima.

WMI se koristi za otkrivanje i praćenje operativnog sistema, usluga i aplikacija koje rade na računaru, uključujući i podatke iz registra i sistema datoteka. Pored toga, omogućava kreiranje i upravljanje skriptama i programima koji automatizuju upravljanje i administraciju računara.

Za upite i operacije nad operativnim sistemom, računarima i uređajima, koristi se programski jezik WQL (Windows Query Language).

WMI takođe pruža pristup PowerShell-u, jednom od najefikasnijih i najfleksibilnijih administrativnih alata za Windows, koji se može koristiti za pisanje skripti za automatizaciju.

Pored toga, WMI omogućava kreiranje prilagođenih aplikacija koje pružaju dodatne funkcionalnosti za upravljanje i administraciju Windows sistema i aplikacija.

Korisnici koji prate stanje svojih mašina, rešavaju uobičajene probleme i prikupljaju podatke o performansama, smatraće WMI vrlo korisnim alatom.

Koja je svrha WMI?

WMI ima veliku primenu u Windows mrežama poslovnog okruženja jer pojednostavljuje rad i upravljanje mrežnim komponentama, prenoseći podatke drugim proizvodima radi daljeg unapređenja i skalabilnosti.

Osnovni cilj WMI je da obezbedi jedinstveni okvir za upravljanje svim aspektima Windows sistema, uključujući:

  • Komponente operativnog sistema
  • Procese i niti
  • Usluge
  • Uređaje
  • Drajvere
  • Aplikacije
  • Korisničke naloge
  • Sigurnosna podešavanja

Uvođenje WMI rezultira smanjenjem troškova i vremena u operacijama i razvoju vezanim za Windows sisteme. WMI takođe omogućava praćenje sistemskih događaja i prikupljanje podataka o performansama, što je korisno za rešavanje problema i praćenje trendova tokom vremena.

WMI se najčešće koristi za automatizaciju administrativnih zadataka i dobijanje pristupa podacima bez direktne interakcije sa operativnim sistemom. Zbog toga, WMI je idealna opcija za administratore i programere kojima je potrebna automatizacija ponavljajućih procesa.

Uz pomoć WMI, moguće je pratiti performanse sistema, ali i prikupljati podatke iz različitih aplikacija. Programeri mogu da razvijaju pametnije i inteligentnije aplikacije, dok IT administratori mogu obavljati svoje zadatke sa minimalnim naporom.

WMI pruža referentnu implementaciju za pristup sistemskim informacijama i predstavlja ključni alat za upravljanje i nadzor Windows sistema. On je temelj za Azure Machine Learning i AzureML, i koristi se za podršku širokog spektra proizvoda drugih proizvođača.

Korišćenje WMI

Windows Management Instrumentation (WMI) je Microsoftova implementacija Web-Based Enterprise Management (WBEM), inicijative u industriji koja ima za cilj razvoj standardizovanih tehnologija za pristup informacijama o upravljanju korporativnim sistemima.

WMI predstavlja sisteme, aplikacije, mreže, uređaje i druge komponente pomoću standardnog modela Common Information Model (CIM). Radna grupa Distributed Management Task Force (DMTF) kreira i održava CIM.

WMI dizajn je svestran, podržava širok spektar administrativnih i upravljačkih funkcija, nudeći fleksibilnu i proširivu arhitekturu. Proizvođači mogu da razvijaju nove WMI provajdere za podršku novim uređajima, aplikacijama i tehnološkim inovacijama.

Druge primene WMI uključuju:

  • Sveobuhvatno upravljanje Windows operativnim sistemom i Microsoft mrežnim uređajima i uslugama.
  • Mogućnost povezivanja sa udaljenim računarima radi pristupa WMI podacima.
  • Otkrivanje informacija o sistemu, kao što su pokrenuti programi i konfiguracije usluga.
  • Preuzimanje informacija o specifikacijama hardvera i izvršavanje radnji poput gašenja ili ponovnog pokretanja sistema.
  • Pokretanje aplikacija, pokretanje, zaustavljanje i konfigurisanje usluga, kao i pristup podacima.
  • Programeri mogu koristiti ovaj API za kreiranje skripti u Visual Basic-u ili Windows Scripting Host-u (WSH).

WMI Arhitektura

WMI (Windows Management Instrumentation) je Microsoft tehnologija predstavljena u Windows-u 2000. Programerima omogućava da kreiraju programe za upravljanje kompatibilne sa bilo kojim sistemom koji podržava WMI.

Pogledajmo arhitekturu i terminologiju WMI.

Protok WMI arhitekture počinje sa objektima: Komponenta kao što je hard disk, mrežna kartica, operativni sistem ili usluga je objekat kojim se može upravljati preko WMI. WMI infrastruktura prima podatke od objekta putem provajdera, koji obezbeđuje i prima poruke od WMI i prenosi ih objektu.

WMI provajder sadrži DLL datoteku i Managed Object Format (MOF) datoteku, koja nadgleda događaje i podatke iz objekata. WMI klasifikuje provajdere prema funkcionalnosti koju pruža interfejs provajdera.

U Windows-u postoji niz ugrađenih WMI provajdera, uključujući Active Directory provajdera, WMI provajdera podataka o konfiguraciji pokretanja (BCD), provajdera distribuiranog sistema datoteka (DFS), provajdera evidencije događaja, Hyper-V WMI provajdera, Win32 provajdera, provajdera registra i SNMP provajdera.

WMI infrastruktura je komponenta operativnog sistema Microsoft Windows poznata kao WMI servis (winmgmt). WMI jezgro i WMI repozitorijum su dva dela WMI infrastrukture.

WMI repozitorijum je hijerarhijsko skladište podataka organizovano pomoću WMI imenskih prostora, poznatih i kao Common Information Model (CIM). Nakon pokretanja sistema, WMI servis kreira nekoliko imenskih prostora, uključujući rootdefault, rootcimv2 i rootsubscription.

Takođe, servis kreira podrazumevani skup definicija klasa, koji uključuje Win32 i WMI sistemske klase. Dodatni WMI provajderi mogu da kreiraju druge WMI imenske prostore, a svaki imenski prostor sadrži više WMI objekata.

WMI servis funkcioniše kao posrednik između provajdera, aplikacija za upravljanje i WMI repozitorijuma. U repozitorijumu se čuvaju samo statički podaci o objektima, kao što su klase koje definišu provajderi. Većina podataka se dobija dinamički od provajdera kada klijent to zahteva.

WMI potrošač je aplikacija za upravljanje ili skripta koja komunicira sa WMI infrastrukturom. Korišćenjem COM API za WMI ili Scripting API za WMI, program za upravljanje može da šalje upite, sortira podatke, pokreće metode provajdera i pretplati se na događaje.

WMI stvara standardizovani interfejs za daljinsko i lokalno prikupljanje upravljačkih podataka. Jedinstveni interfejs je nezavistan od Application Programming Interface (API) operativnog sistema. Ovo omogućava aplikacijama i skriptama da prikupljaju podatke o upravljanju bez potrebe da znaju za API operativnog sistema.

Kako pokrenuti WMI upit?

Jedna od ključnih karakteristika WMI platforme je mogućnost postavljanja upita u repozitorijumu radi dobijanja detalja o klasi, instanci ili podacima šeme. Ovi podaci su povezani sa inventarom lokalnih i udaljenih sistema, operativnih sistema, softvera i drugih administrativnih aktivnosti.

Vrsta upita

Generalno, postoje dva tipa upita koji se koriste za preuzimanje informacija iz WMI repozitorijuma:

Sinhroni upit: Ovo je upit koji zadržava kontrolu nad radom vaše aplikacije tokom celog trajanja upita. Jednostavniji je od asinhronog poziva, jer je potreban samo jedan poziv interfejsa. Međutim, kod velikih pretraga ili upita baziranih na mreži, može da zamrzne vašu aplikaciju.

Asinhroni upit: Kada će na brzinu sistema ili mreže uticati upiti velikog broja podataka, asinhroni upit je poželjna vrsta upita.

WQL (WMI Query Language)

Jedan od najpopularnijih načina za postavljanje upita WMI-u je korišćenjem WMI Query Language (WQL).

SQL (Structured Query Language) se koristi u okruženju baze podataka, dok se WQL koristi u WMI. Oba jezika imaju sličnu strukturu sintakse.

SELECT, FROM i WHERE su osnovne WQL izjave koje se koriste za pokretanje upita.

Tipičan WMI upit počinje odabirom svih svojstava iz WMI klase pomoću naredbe „SELECT“. Zvezdica (“*”) se koristi za odabir svakog svojstva iz WMI klase. Ključna reč „FROM“ se koristi za određivanje WMI klase nad kojom se vrši upit nakon odabira svojstava (jednog ili više, ili svih njih). Tačnu sintaksu možete proveriti u SQL kodu.

WQL se može izvršiti putem WMI Tester-a (wbemtest.exe), koji se podrazumevano instalira uz Windows operativni sistem. WMI upiti se takođe mogu izvršavati putem Windows PowerShell-a, VBScript-a i C jezika.

Tip WQL upita

WQL upiti se koriste za dobijanje tri različite vrste informacija.

Upiti o objektima: Informacije o resursima Windows sistema se mogu preuzeti korišćenjem ovih upita.

Upiti o događajima: Ovi upiti se koriste za praćenje promena u evidenciji događaja, pokretanja procesa, statusa usluga, dostupnosti računara ili količine slobodnog prostora na disku.

Upiti šeme: Ovi upiti se koriste za dobijanje detalja o strukturi WMI šeme.

Pokretanje upita

Pogledajmo kako da pokrenemo upit za objekte.

Sledeći metod opisuje kako proveriti WIN_32 procese na lokalnom sistemu.

Alat WMI Tester se pokreće iz komandne linije unosom wbemtest.exe.

Pojaviće se sledeći prozor.

Za povezivanje sa WMI imenskim prostorom koji sadrži klasu nad kojom želite da izvršite upit (RootCimv2 u većini slučajeva): kliknite na karticu za povezivanje.

Da biste pokrenuli upit, kliknite na karticu ‘Upit’ kao što je prikazano ispod:

Zatim unesite upit za koji želite da preuzmete informacije. Na primer, da preuzmemo sve procese koji rade na lokalnom sistemu, pokrenućemo:

select * From Win32_process

Nakon što kliknete na karticu Primena, dobićete sledeće rezultate

Navedena izvršenja bazirana na GUI-u takođe se mogu izvršiti u komandnoj liniji preko PowerShell-a:

U PowerShell platformi, za dobijanje liste svih win_32 procesa, koristi se sledeći kod:

Get-WmiObject -Class Win32_Process

Za dobijanje svih parametara PowerShell upita, posetite Microsoft PowerShell upravljanje stranicu.

Za pokretanje ovog upita u VBScript i C jeziku, Microsoft stranica sa dokumentacijom pruža detaljnija uputstva.

Još jedan metod za ispitivanje WMI repozitorijuma je putem WMIC komande:

  • Pokrenite CMD iz komandne linije
  • Ukucajte WMIC i pritisnite enter za pokretanje programa
  • Tada će se komandna linija promeniti u wmic:rootcli>

Administratori mogu pokretati WMI upite iz ovog upita.

Na primer, za dobijanje informacija o CPU-u lokalnog sistema, komanda bi bila:

wmic:rootcli> WMIC CPU

Rezultati/informacije će biti prikazani u komandnoj liniji.

AddressWidth  Architecture  AssetTag                Availability  Caption                                 Characteristics  ConfigManagerErrorCode  ConfigManagerUserConfig  CpuStatus  CreationClassName  CurrentClockSpeed  CurrentVoltage  DataWidth  Description                             DeviceID  ErrorCleared  ErrorDescription  ExtClock  Family  InstallDate  L2CacheSize  L2CacheSpeed  L3CacheSize  L3CacheSpeed  LastErrorCode  Level  LoadPercentage  Manufacturer  MaxClockSpeed  Name                                      NumberOfCores  NumberOfEnabledCore  NumberOfLogicalProcessors  OtherFamilyDescription  PartNumber              PNPDeviceID  PowerManagementCapabilities  PowerManagementSupported  ProcessorId       ProcessorType  Revision  Role  SecondLevelAddressTranslationExtensions  SerialNumber            SocketDesignation  Status  StatusInfo  Stepping  SystemCreationClassName  SystemName  ThreadCount  UniqueId  UpgradeMethod  Version  VirtualizationFirmwareEnabled  VMMonitorModeExtensions  VoltageCaps
64            9             To Be Filled By O.E.M.  3             Intel64 Family 6 Model 142 Stepping 10  252                                                               1          Win32_Processor    1801               7               64         Intel64 Family 6 Model 142 Stepping 10  CPU0                                      100       205                  1024                       6144         0                            6      31              GenuineIntel  1801           Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz  4              4                    8                                                  To Be Filled By O.E.M.                                            FALSE                     BFEBFBFF000806EA  3                        CPU   TRUE                                     To Be Filled By O.E.M.  U3E1               OK      3                     Win32_ComputerSystem     RENEE-HP     8                      51                      FALSE                          TRUE

Za više informacija o WMIC pseudonimima i glagolima, posetite Microsoft wmic.

Često postavljana pitanja o WMI

Koji se portovi koriste u WMI?

Koriste se portovi 49152 i 65535. Distributed Component Object Model (DCOM), na kojem se zasniva WMI, podrazumevano koristi nasumično odabrani TCP port za veze između opsega 49152 i 65535.

Da li je WMI zastareo?

WMI se i dalje podržava. Od Windows 10, verzije 21H1, i polugodišnjeg izdanja kanala 21H1 Windows Servera, WMI komandna linija (WMIC) više nije podržana.

Šta su WMI alati za praćenje?

Postoji mnogo dostupnih alata za nadgledanje WMI. Neki od najpopularnijih su:
SolarWinds WMI monitor sa serverom i monitorom aplikacija
Paessler WMI servisni senzor sa PRTG
Nagios XI
Sapien WMI Explorer
Besplatni alati su WMI Explorer, Adrem besplatni WMI alati

Kako rešavati probleme sa WMI?

Možete naići na greške u rasponu od nedostajućih klasa do kršenja pristupa prilikom pokušaja pristupa WMI lokalnim ili udaljenim podacima u aplikaciji ili skripti. Pogledajte Microsoft WMI vodič za rešavanje problema za rešenja takvih grešaka.

Zaključak

Sve u svemu, Windows Management Instrumentation je moćan alat koji se može koristiti za obavljanje širokog spektra funkcija u Windows sistemu. WMI može biti veoma koristan alat za svakoga ko radi sa Windows sistemima, iako na prvi pogled može delovati zastrašujuće.