Instrumentul fundamental pentru colectarea informațiilor și administrarea sistemelor Windows se numește Windows Management Instrumentation (WMI).
WMI facilitează accesul la datele de gestionare pentru o varietate de componente ale sistemului de operare și pentru alte programe, cum ar fi SCOM (System Center Operations Manager) sau Windows Remote Management.
Ce este Windows Management Instrumentation (WMI)?
WMI este o platformă centrală pentru administrarea și supravegherea sistemului de operare, precum și a altor aplicații și servicii Microsoft, pe computere, servere și alte dispozitive conectate în rețea.
Acesta pune la dispoziție o interfață de programare extinsă, scalabilă și intuitivă, care oferă acces programatic la informații și funcții pe sistemele gestionate de Microsoft și alte dispozitive de rețea.
WMI este utilizat pentru a monitoriza și a obține informații despre sistemul de operare, serviciile, aplicațiile, registrul și sistemul de fișiere. De asemenea, este folosit pentru a elabora și a administra scripturi și programe care automatizează sarcinile de administrare a calculatorului.
Pentru a interoga informații și a executa operații pe sistemul de operare și dispozitive, WMI utilizează limbajul de programare WQL (Windows Query Language).
În plus, oferă acces la PowerShell, un instrument de administrare Windows puternic și adaptabil, pe care îl puteți utiliza pentru a crea scripturi de automatizare.
Mai mult, WMI permite dezvoltarea de aplicații personalizate care adaugă funcționalități suplimentare pentru managementul și administrarea sistemelor și aplicațiilor Windows.
WMI se dovedește a fi un instrument valoros pentru utilizatorii care doresc să monitorizeze starea echipamentelor, să efectueze depanări de bază și să colecteze date despre performanță.
Care este rolul WMI?
Într-o rețea enterprise bazată pe Windows, WMI simplifică operarea și administrarea componentelor, transmițând date către alte instrumente pentru îmbunătățiri și extindere.
Scopul principal al WMI este de a oferi un cadru unificat pentru managementul tuturor aspectelor unui sistem Windows, inclusiv:
- Componentele sistemului de operare
- Procesele și firele de execuție
- Serviciile
- Dispozitivele
- Driverele
- Aplicațiile
- Conturile de utilizator
- Setările de securitate
Prin utilizarea WMI, se reduce timpul și costurile asociate operațiunilor și dezvoltării sistemelor Windows. De asemenea, WMI permite monitorizarea evenimentelor sistemului și colectarea de date despre performanță, date care pot fi folosite pentru depanare sau pentru urmărirea tendințelor în timp.
WMI este cel mai des folosit pentru a automatiza sarcinile administrative și pentru a accesa informații fără a interacționa direct cu sistemul de operare. Astfel, WMI este o resursă excelentă pentru administratorii și dezvoltatorii de software care doresc să automatizeze procese repetitive.
De la monitorizarea performanțelor sistemului până la colectarea de date specifice aplicațiilor, WMI face posibilă o gamă largă de acțiuni. Dezvoltatorii pot crea aplicații mai inteligente și eficiente, iar administratorii IT își pot îndeplini sarcinile cu un efort minim.
WMI oferă un cadru de referință pentru accesarea informațiilor de sistem și este un instrument cheie pentru gestionarea și monitorizarea sistemelor Windows. Este fundația pentru Azure Machine Learning și AzureML și este utilizat pe scară largă de multe produse terțe.
Utilizarea WMI
Windows Management Instrumentation (WMI) reprezintă implementarea de către Microsoft a Web-Based Enterprise Management (WBEM), un efort al industriei de a dezvolta tehnologii standardizate pentru accesarea informațiilor de management enterprise.
WMI reprezintă sistemele, aplicațiile, rețelele, dispozitivele și alte componente gestionate, folosind standardul industrial Common Information Model (CIM). Distributed Management Task Force (DMTF) este organizația care creează și actualizează CIM.
Arhitectura WMI este flexibilă, susținând o gamă largă de sarcini de administrare și management. În plus, structura sa extensibilă permite producătorilor să dezvolte noi furnizori WMI pentru a suporta noi dispozitive, aplicații și alte inovații.
Alte utilizări includ:
- Managementul complet al sistemului de operare Windows, al dispozitivelor și serviciilor de rețea Microsoft.
- Posibilitatea de conectare la computere de la distanță pentru accesarea datelor WMI.
- Descoperirea de informații despre sistem, cum ar fi programele care rulează și serviciile configurate.
- Colectarea de informații despre specificațiile hardware și efectuarea de acțiuni, cum ar fi închiderea sau repornirea sistemului.
- Lansarea aplicațiilor, pornirea, oprirea și configurarea serviciilor, precum și accesarea datelor.
- Dezvoltatorii de aplicații pot folosi API-ul WMI pentru a crea scripturi în Visual Basic sau Windows Scripting Host (WSH).
Arhitectura WMI
WMI (Windows Management Instrumentation) este o tehnologie Microsoft introdusă inițial în Windows 2000. Aceasta permite programatorilor să dezvolte programe de management care pot opera pe orice sistem compatibil WMI.
Să analizăm arhitectura și terminologia WMI.
Arhitectura WMI începe cu Obiectele: o componentă, cum ar fi un hard disk, o placă de rețea, un sistem de operare sau un serviciu, este un obiect gestionat (care poate fi administrat prin WMI). Infrastructura WMI primește date de la un obiect prin intermediul unui furnizor, care transmite și primește mesaje către și de la WMI, și apoi le livrează obiectului.
Un furnizor WMI include un DLL și un fișier MOF (Managed Object Format) care monitorizează evenimentele și datele de la obiecte. WMI clasifică furnizorii în funcție de funcționalitățile oferite de interfața acestora.
Windows include numeroși furnizori WMI, cum ar fi furnizorul Active Directory, furnizorul WMI de date de configurare de pornire (BCD), furnizorul de sistem de fișiere distribuite (DFS), furnizorul de jurnal de evenimente, furnizorul WMI Hyper-V, furnizorul Win32, furnizorul de registru și furnizorul SNMP.
Infrastructura WMI este o componentă a sistemului de operare Microsoft Windows, cunoscută și sub numele de serviciul WMI (winmgmt). Aceasta include WMI Core și WMI Repository.
Depozitul WMI este o structură ierarhică de date, organizată prin spații de nume WMI, numite și Common Information Model (CIM). Serviciul WMI configurează mai multe spații de nume la pornirea sistemului, cum ar fi root\default, root\cimv2 și root\subscription.
De asemenea, serviciul creează un set implicit de definiții de clasă, care include clasele de sistem Win32 și WMI. Furnizorii WMI pot crea și alte spații de nume, fiecare conținând mai multe obiecte WMI.
Serviciul WMI acționează ca un intermediar între furnizori, aplicațiile de management și depozitul WMI. În depozit sunt stocate doar date statice despre obiecte, cum ar fi clasele definite de furnizori. Cele mai multe date sunt obținute dinamic de la furnizor atunci când un client le solicită.
Un consumator WMI este o aplicație de management sau un script care comunică cu infrastructura WMI. Utilizând API-ul COM pentru WMI sau API-ul Scripting pentru WMI, un program de management poate interoga date, poate rula metode ale furnizorilor și se poate abona la evenimente.
WMI creează o interfață standardizată pentru accesarea datelor de management, atât local cât și de la distanță. Această interfață uniformă abstractizează API-urile sistemului de operare, permițând aplicațiilor și scripturilor să colecteze date fără a fi nevoie să cunoască direct API-ul specific al sistemului de operare.
Cum se execută o interogare WMI?
Una dintre caracteristicile puternice ale WMI este capacitatea de a interoga depozitul pentru a obține detalii despre datele referitoare la clase, instanțe sau schemă. Aceste informații sunt conectate la inventarul sistemelor locale și de la distanță, sisteme de operare, software și alte operațiuni administrative.
Tipuri de interogări
În general, există două tipuri de interogări utilizate pentru a prelua informații din depozitul WMI:
Interogare sincronă: Aceasta menține controlul asupra aplicației pe toată durata interogării. Este mai simplă decât un apel asincron, deoarece necesită doar un singur apel de interfață. Totuși, poate bloca aplicația în cazul căutărilor mari sau a interogărilor bazate pe rețea.
Interogare asincronă: Când viteza unui sistem sau a unei rețele ar putea fi afectată de interogarea unui volum mare de date, se preferă utilizarea unei interogări asincrone.
WQL (limbaj de interogare WMI)
O metodă comună de a interoga WMI este prin intermediul limbajului de interogare WMI (WQL).
Similar cu SQL (Structured Query Language) folosit în baze de date, WQL este limbajul specific WMI, ambele având o structură sintactică similară.
Instrucțiunile fundamentale WQL sunt Select, From și Where, utilizate pentru a lansa interogarea.
O interogare tipică WMI începe prin selectarea tuturor proprietăților dintr-o clasă WMI folosind comanda „Select”. Asteriscul (“*”) selectează toate proprietățile dintr-o clasă. Cuvântul cheie „From” specifică clasa WMI care trebuie interogată. Pentru sintaxa exactă, se poate consulta un cheatsheet SQL.
WQL poate fi executat prin WMI Tester (wbemtest.exe), inclus implicit în sistemul de operare Windows. Interogările WMI pot fi executate și prin Windows PowerShell, VBScript și limbajul C.
Tipuri de interogări WQL
Interogările WQL sunt folosite pentru a obține trei tipuri de informații.
Interogări obiect: Aceste interogări preiau informații despre resursele sistemului Windows.
Interogări de evenimente: Sunt utilizate pentru a urmări modificările jurnalelor de evenimente, inițierea proceselor, starea serviciilor, disponibilitatea computerelor sau spațiul liber pe disc.
Interogări de schemă: Aceste interogări oferă detalii despre structura schemei WMI.
Executarea unei interogări
Să vedem cum se execută o interogare de obiect.
Metoda următoare ilustrează cum să verificați procesele WIN_32 pe un sistem local.
Instrumentul WMI Tester se lansează din linia de comandă tastând wbemtest.exe.
Se va afișa fereastra următoare:
Pentru a vă conecta la spațiul de nume WMI care conține clasa pe care o interogați (de obicei RootCimv2): faceți clic pe butonul de conectare.
Pentru a executa interogarea, faceți clic pe butonul „Interogare”, după cum se vede mai jos:
Introduceți interogarea dorită. De exemplu, pentru a prelua toate procesele care rulează pe sistemul local, rulați:
select * From Win32_process
După ce faceți clic pe butonul Aplicare, veți obține rezultatele:
Execuția bazată pe interfața grafică de mai sus poate fi efectuată și în linia de comandă prin PowerShell:
Pentru a obține lista tuturor proceselor win_32 în PowerShell, utilizați codul de mai jos:
Get-WmiObject -Class Win32_Process
Pentru a vedea toți parametrii de interogare PowerShell, accesați pagina de documentație Management Microsoft PowerShell.
Pentru a rula această interogare în VBScript și C, consultați pagina de documentație Microsoft.
O altă metodă de interogare a depozitului WMI este prin comanda WMIC:
- Deschideți CMD din linia de comandă.
- Tastați WMIC și apăsați Enter pentru a porni programul.
- Linia de comandă se va schimba în wmic:root\cli>.
Administratorii pot rula interogări WMI din acest prompt.
De exemplu, pentru a obține informațiile CPU ale unui sistem local, comanda va fi:
wmic:root\cli> WMIC CPU
Rezultatele vor fi afișate în linia de comandă.
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
Pentru mai multe informații despre Alias și verbe WMIC, accesați documentația Microsoft wmic.
Întrebări frecvente despre WMI
Care sunt porturile utilizate de WMI?
Porturile folosite sunt între 49152 și 65535. WMI se bazează pe Distributed Component Object Model (DCOM), care utilizează un port TCP aleatoriu pentru conexiunile din acest interval.
Este WMI depreciat?
WMI este încă suportat. Totuși, începând cu Windows 10, versiunea 21H1 și versiunea semestrială a canalului 21H1 de Windows Server, programul de linie de comandă WMI (WMIC) nu mai este suportat.
Ce sunt instrumentele de monitorizare WMI?
Există numeroase instrumente pentru monitorizarea WMI, cele mai populare fiind: SolarWinds WMI Monitor cu server și aplicații, senzorul de servicii Paessler WMI cu PRTG, Nagios XI, Sapien WMI Explorer. Instrumentele gratuite includ WMI Explorer și Adrem Free WMI Tools.
Cum se depanează problemele WMI?
Pot apărea erori, cum ar fi lipsa unor clase sau încălcări de acces, când se încearcă accesarea datelor WMI locale sau de la distanță dintr-o aplicație sau script. Consultați Ghidul de depanare Microsoft WMI pentru soluții.
Concluzie
În concluzie, Windows Management Instrumentation este un instrument complex care poate fi folosit pentru a administra o varietate de funcții ale sistemului Windows. Deși inițial poate părea complicat, WMI poate fi un instrument valoros pentru oricine lucrează cu sisteme Windows.