Instrumentație de gestionare Windows - Windows Management Instrumentation

Instrumentație de gestionare Windows
Autori originali Microsoft
Dezvoltatori Microsoft
Sistem de operare Microsoft Windows
Platformă IA-32 , x86-64 și ARM (istoric Itanium , DEC Alpha , MIPS și PowerPC )
Tip Managementul sistemelor
Licență Proprietate
Site-ul web docs .microsoft .com / en-us / previous-versions / windows / desktop / wmi _v2 / windows-management-infrastructure

Windows Management Instrumentation ( WMI ) constă dintr-un set de extensii ale modelului de driver Windows care oferă o interfață a sistemului de operare prin care componentele instrumentate furnizează informații și notificări. WMI este implementarea de către Microsoft a standardelor de gestionare a întreprinderilor bazate pe web (WBEM) și a standardului Common Information Model (CIM) de la Distributed Management Task Force (DMTF).

WMI permite limbajelor de scriptare (cum ar fi VBScript sau Windows PowerShell ) să gestioneze computerele și serverele personale Microsoft Windows , atât local, cât și de la distanță. WMI este preinstalat în Windows 2000 și în sistemele de operare Microsoft mai noi . Este disponibil ca descărcare pentru Windows NT și Windows 95 la Windows 98 .

Microsoft oferă, de asemenea, o interfață de linie de comandă către WMI numită Linie de comandă Windows Instrumentation Management ( WMIC ).

Scopul WMI

Scopul WMI este de a defini un set proprietar de specificații independente de mediu care permit partajarea informațiilor de gestionare între aplicațiile de gestionare. WMI prescrie standardele de management al întreprinderii și tehnologiile conexe pentru Windows care funcționează cu standardele de management existente, cum ar fi Desktop Management Interface (DMI) și SNMP . WMI completează aceste alte standarde oferind un model uniform. Acest model reprezintă mediul gestionat prin care datele de gestionare din orice sursă pot fi accesate într-un mod comun.

Proces de dezvoltare

Deoarece WMI abstractizează entitățile gestionabile cu CIM și o colecție de furnizori, dezvoltarea unui furnizor implică mai mulți pași. Pașii majori pot fi rezumați după cum urmează:

  1. Creați modelul de entitate gestionabil
    1. Definiți un model
    2. Implementați modelul
  2. Creați furnizorul WMI
    1. Determinați tipul furnizorului de implementat
    2. Determinați modelul de găzduire al furnizorului
    3. Creați șablonul furnizorului cu expertul ATL
    4. Implementați logica codului în furnizor
    5. Înregistrați furnizorul cu WMI și sistemul
  3. Testați furnizorul
  4. Creați un eșantion de cod pentru consumator.

Importanța furnizorilor WMI

De la lansarea primei implementări WMI în timpul erei Windows NT 4.0 SP4 (ca descărcare în afara benzii), Microsoft a adăugat în mod constant furnizori WMI la Windows:

  • În Windows NT 4.0, Microsoft avea aproximativ 15 furnizori WMI disponibili odată ce WMI a fost instalat
  • Când a fost lansat Windows 2000 , existau 29 de furnizori WMI ca parte a instalării sistemului de operare
  • Odată cu lansarea Windows Server 2003 , Microsoft a inclus pe platformă peste 80 de furnizori WMI
  • Windows Vista include 13 noi furnizori de WMI, ocupând un număr de aproape 100 în total
  • Windows Server 2008 include mai mulți furnizori, inclusiv furnizori pentru IIS 7, PowerShell și virtualizare
  • Windows 10 include 47 de furnizori pentru serviciul Mobile Device Management (MDM).

Mulți clienți au interpretat creșterea numărului de furnizori ca un semn că WMI a devenit la Microsoft stratul de gestionare „omniprezent” al Windows, chiar dacă Microsoft nu a făcut niciodată explicit acest angajament.

Datorită expunerii în continuă creștere a datelor de management prin WMI în Windows, oamenii din domeniul managementului sistemelor IT au început să dezvolte scripturi și proceduri de automatizare bazate pe WMI. Dincolo de nevoile de scriptare, majoritatea pachetelor software de management, cum ar fi MOM , SCCM , ADS, HP OpenView pentru Windows (HPOV), BMC Software sau CA, Inc. sunt compatibile cu WMI și sunt capabile să consume și să furnizeze informații WMI prin intermediul diferiților utilizatori. Interfețe . Acest lucru permite administratorilor și operatorilor care nu sunt capabili să creeze scripturi sau să programeze pe WMI să se bucure de avantajele WMI fără să afle măcar despre asta. Cu toate acestea, dacă doresc, deoarece WMI este scriptabil, le oferă posibilitatea de a consuma informații WMI din scripturi sau din orice software de gestionare a întreprinderii care conține WMI .

Caracteristici

Pentru cineva care dorește să dezvolte unul sau mai mulți furnizori WMI, WMI oferă multe funcții din cutie. Iată cele mai importante avantaje:

  1. Interfețe de automatizare:
    Deoarece WMI vine cu un set de interfețe de automatizare gata de utilizare, toate caracteristicile de gestionare acceptate de un furnizor de WMI și setul său de clase beneficiază de suport pentru scriptare gratuit din cutie. Dincolo de proiectarea clasei WMI și dezvoltarea furnizorului, echipele de dezvoltare și testare Microsoft nu sunt obligate să creeze, să valideze sau să testeze un model de scriptare, deoarece acesta este deja disponibil de la WMI.
  2. Interfețe de gestionare .NET :
    Deoarece spațiul de nume System.Management se bazează peinstalarea COM / DCOM existentă, furnizorul WMI creat și setul său de clase WMI devin disponibile automat pentru toate aplicațiile .NET independent de limba utilizată (de exemplu, C # , VB.NET ). Dincolo de proiectarea clasei WMI și dezvoltarea furnizorilor, ca și pentru scripturi, echipele de dezvoltare și testare Microsoft nu sunt obligate să creeze, să valideze și să testeze noi ansambluri pentru a susține un nou spațiu de nume în .NET Framework, deoarece acest suport este deja disponibil de la WMI pentru gratuit.
  3. Interfețe de programare C / C ++ COM / DCOM: la
    fel ca majoritatea componentelor din Windows, programatorii COM / DCOM pot utiliza caracteristicile furnizorului pe care îl dezvoltă la nivelul interfețelor COM / DCOM. Ca și în mediile anterioare (scripting și .NET Framework ), un consumator COM / DCOM trebuie doar să interacționeze cu setul standard de interfețe WMI COM pentru a valorifica capacitățile furnizorului WMI și setul său de clase WMI acceptate. Pentru a face disponibile toate informațiile de gestionare de la API-urile native, dezvoltatorul furnizorului WMI trebuie doar să interacționeze cu un set de interfețe WMI COM predefinite. Acest lucru va face automat informațiile de gestionare disponibile la nivelul WMI COM. Mai mult, modelul de obiect al interfeței COM de scriptare este foarte similar cu modelul de obiect al interfeței COM / DCOM, ceea ce face mai ușor pentru dezvoltatori familiarizarea cu experiența de scriptare.
  4. Capabilități de la distanță prin DCOM și SOAP :
    Mai mult decât oferirea simplă a capabilităților COM locale, întrucât managementul se referă la distanță , WMI oferă transportul DCOM. În plus, transportul SOAP va fi disponibil în Windows Server 2003 R2 prin inițiativa WS-Management condusă de Microsoft , Intel , Sun Microsystems și Dell . Această inițiativă permite rularea oricăror scripturi de la distanță sau consumarea datelor WMI printr-un set specific de interfețe care gestionează cererile / răspunsurile SOAP. Avantajul pentru dezvoltatorul furnizorului WMI este că atunci când își expune toate caracteristicile prin WMI, Windows Remote Management / WS-Management poate, la rândul său, să consume acele informații (obiectele încorporate în instanțele WMI nu sunt acceptate în Windows Server 2003 R2. Este totuși o țintă pentru Vista). Toate straturile către WS-Management și maparea modelului de date CIM la SOAP provin gratuit din soluția WMI / WS-Management. În cazul în care DCOM trebuie utilizat, implementarea DCOM necesită prezența unui DLL proxy implementat pe fiecare computer client. Deoarece WMI este disponibil în sistemul de operare Windows de la Windows 2000, aceste probleme sunt eliminate.
  5. Asistență pentru interogări:
    WMI oferă asistență pentru interogări WQL . Aceasta înseamnă că, dacă un furnizor nu este conceput să accepte interogări, WMI îl acceptă utilizând o tehnică de enumerare din furnizor.
  6. Capacități de evenimente:
    WMI oferă posibilitatea de a notifica un abonat pentru orice eveniment care îl interesează. WMI folosește WMI Query Language (WQL) pentru a trimite interogări de evenimente WQL și definește tipul de evenimente care trebuie returnate. Mecanismul de evenimente, cu toate apelurile de apel conexe, face parte din interfețele WMI COM / DCOM și de automatizare. Oricine scrie un furnizor WMI poate beneficia de această funcționalitate fără costuri pentru clienții săi. Va rămâne la latitudinea consumatorului să decidă cum dorește să consume informațiile de gestionare expuse de furnizorul WMI și setul aferent de clase WMI.
  7. Generator de șabloane de cod:
    Pentru a accelera procesul de scriere a unui furnizor WMI, inclusiv toate interfețele COM / DCOM și definițiile aferente, echipa WMI a dezvoltat WMI ATL Wizard pentru a genera șablonul de cod care implementează un furnizor. Codul generat se bazează pe modelul clasei WMI proiectat inițial de dezvoltator. Dezvoltatorul furnizorului WMI va putea interfața interfețele COM / DCOM predefinite pentru furnizorul WMI cu setul său de API-uri native care preia informațiile de gestionare pe care să le expună. Exercițiul constă în completarea „golurilor” din codul furnizorului pentru a crea logica de interfață dorită.
  8. Previzibilitate:
    Previzibilitatea este o preocupare importantă pentru profesioniștii IT, deoarece definește capacitatea cuiva care are o experiență cu un set de interfețe care gestionează o componentă Windows să aplice aceste cunoștințe imediat, intuitiv, oricărei alte componente Windows gestionabile, fără a fi reînvățat totul de la sol sus. Previzibilitatea pentru un client este un câștig real, deoarece crește rentabilitatea investiției ( ROI ). O persoană care se confruntă cu o astfel de situație se așteaptă pur și simplu ca lucrurile să funcționeze la fel în funcție de experiența sa anterioară. Creșterea constantă a programării COM / interfețelor scriptabile are un impact uriaș asupra predictibilității, deoarece acest lucru face dificilă automatizarea, gestionarea Windows de către clienți și valorificarea cunoștințelor existente. WMI cu CIM abordează această problemă expunând întotdeauna același model de obiect de programare (COM / DCOM, Automation, .NET) indiferent de entitatea gestionabilă.
  9. Protejați investițiile existente ale clienților:
    Protejarea investițiilor clienților și partenerilor îi motivează pe clienți să investească în tehnologii. Deoarece Microsoft a investit mult în ultimii ani în scrierea furnizorilor WMI, clienții și partenerii au investit în instrumente care valorifică capacitățile WMI ale Windows. Prin urmare, în mod natural, ei continuă să exploateze aceste capabilități în loc să fie nevoiți să utilizeze un nou set de interfețe specifice pentru fiecare componentă Windows gestionabilă. Un set specific de interfețe înseamnă a avea un set specific de agenți sau software dezvoltat intern bazat pe un nou model sau set de interfețe dedicate în special unei componente sau unei tehnologii. Utilizând capabilitățile WMI de astăzi, clienții și partenerii pot valorifica investițiile de muncă realizate în trecut, reducând în același timp costurile lor în evoluții, curbe de învățare și noi descoperiri. Acest lucru va avea, de asemenea, un impact mare asupra stabilității și fiabilității infrastructurii lor, deoarece continuă să valorifice o implementare existentă cu o tehnologie îmbunătățită.
  10. Furnizați un model de administrare logic și unificat:
    După cum s-a descris pe scurt anterior în introducere, acest model se bazează pe un standard industrial numit CIM definit de DMTF ( http://www.dmtf.org ). Schema pe bază de clasa CIM este definită de un consorțiu de constructori și dezvoltatorii de software care îndeplinește cerințele industriei. Acest lucru implică faptul că nu numai Microsoft valorifică capacitățile WMI, ci și orice alți constructori sau dezvoltatori terți își scriu propriul cod pentru a se încadra în model. De exemplu, Intel face acest lucru pentru unele dintre adaptoarele și software-ul lor pentru driverul de rețea. HP utilizează furnizorii WMI existenți și implementează proprii furnizori WMI în software-ul HP Open View Enterprise Management . IBM consumă WMI din suita de management Tivoli , MOM și SMS consumă și furnizează informații WMI. În cele din urmă, Windows XP SP2 folosește WMI pentru a obține starea informațiilor din software-ul antivirus și firewall-uri.

Instrumente WMI

Unele instrumente WMI pot fi, de asemenea, utile în timpul fazelor de proiectare și dezvoltare. Aceste instrumente sunt:

  • Compilatorul MOF (MOFComp.exe): compilatorul Managed Object Format (MOF) analizează un fișier care conține instrucțiuni Format obiect gestionat și adaugă clasele și instanțele de clasă definite în fișier în depozitul CIM. Formatul MOF este o sintaxă specifică pentru a defini reprezentarea clasei CIM într-un fișier ASCII (de exemplu, MIB sunt către SNMP ceea ce sunt fișierele MOF pentru CIM). MOFComp.exe este inclus în fiecare instalare WMI. Fiecare definiție existentă în depozitul CIM este inițial definită într-un fișier MOF. Fișierele MOF sunt localizate în% SystemRoot% \ System32 \ WBEM. În timpul configurării WMI, acestea sunt încărcate în depozitul CIM.
  • Instrumentele administrative WMI: Instrumentele administrative WMI sunt formate din patru instrumente: WMI CIM Studio, WMI Object Browser, WMI Event Registration și WMI Event Viewer. Cel mai important instrument pentru un dezvoltator de furnizori WMI este WMI CIM Studio, deoarece ajută la crearea inițială a clasei WMI în depozitul CIM. Folosește o interfață web pentru a afișa informații și se bazează pe o colecție de componente ActiveX instalate pe sistem atunci când rulează pentru prima dată. WMI CIM Studio oferă posibilitatea de a:
    • Conectați-vă la un sistem ales și răsfoiți depozitul CIM în orice spațiu de nume disponibil.
    • Căutați cursuri după numele lor, după descrierile lor sau după numele proprietăților.
    • Examinați proprietățile, metodele și asociațiile legate de o anumită clasă.
    • Vedeți instanțele disponibile pentru o anumită clasă a sistemului examinat.
    • Efectuați interogări în limbajul WQL.
    • Generați un fișier MOF pe baza claselor selectate.
    • Compilați un fișier MOF pentru al încărca în depozitul CIM.
  • WinMgmt.exe: WinMgmt.exe nu este un instrument; este executabilul care implementează serviciul WMI Core. În familia Windows NT de sisteme de operare, WMI rulează ca serviciu. Pe computerele care rulează Windows 98, Windows 95 sau Windows Me, WMI rulează ca aplicație. În familia de sisteme de operare Windows NT, este de asemenea posibil să rulați acest executabil ca aplicație, caz în care executabilul rulează în contextul actual al utilizatorului. Pentru aceasta, serviciul WMI trebuie oprit mai întâi. Executabilul acceptă unele comutatoare care pot fi utile la pornirea WMI ca serviciu sau ca aplicație. Dezvoltatorii furnizorului de WMI care ar putea dori să-și depaneze furnizorii trebuie, în esență, să ruleze serviciul WMI ca aplicație.
  • WBEMTest.exe: WBEMTest.exe este un instrument de testare WMI, care este livrat cu WMI. Acest instrument permite unui administrator sau unui dezvoltator să efectueze majoritatea sarcinilor dintr-o interfață grafică pe care WMI o oferă la nivel API . Deși este disponibil în toate sistemele de operare bazate pe Windows NT, acest instrument nu este acceptat oficial de Microsoft. WBEMTest oferă posibilitatea de a:
    • Enumerați, deschideți, creați și ștergeți clase.
    • Enumerați, deschideți, creați și ștergeți instanțe ale claselor.
    • Selectați un spațiu de nume.
    • Efectuați interogări de date și evenimente.
    • Executați metode asociate claselor sau instanțelor.
    • Executați fiecare operațiune WMI în mod asincron, sincron sau semi-asincron.
wmic
Dezvoltatori Microsoft
Sistem de operare Microsoft Windows
Tip Comanda
Licență Software comercial proprietar
Site-ul web docs .microsoft .com / en-us / windows-server / administration / windows-commands / wmic
  • Instrumentul pentru linia de comandă WMI (WMIC): WMIC este un instrument pentru linia de comandă conceput pentru a facilita regăsirea informațiilor WMI despre un sistem prin utilizarea unor cuvinte cheie simple (pseudonime). WMIC.exe este disponibil numai în Windows XP Professional, Windows Server 2003, Windows Vista, Windows 7 și Windows Server 2008. Prin tastarea „WMIC /?” din linia de comandă, este disponibilă o listă completă a comutatoarelor și a cuvintelor cheie rezervate.
    • Există un port Linux al instrumentului de linie de comandă WMI, scris în Python, bazat pe Samba4 numit „wmi-client”
  • WBEMDump.exe: WBEMDump este un instrument livrat împreună cu platforma SDK . Acest instrument de linie de comandă vine cu propriul proiect Visual C ++. Instrumentul poate afișa clasele depozitului CIM, instanțe sau ambele. Este posibil să preluați aceleași informații ca cele preluate cu WMIC. WBEMDump.exe necesită cunoștințe mai specifice despre WMI, deoarece nu abstractizează WMI ca WMIC. Cu toate acestea, rulează sub Windows NT 4.0 și Windows 2000. Este, de asemenea, posibil să executați metode expuse de clase sau instanțe. Chiar dacă nu este un instrument WMI standard livrat odată cu instalarea sistemului, acest instrument poate fi destul de util pentru explorarea depozitului CIM și a caracteristicilor WMI.
  • WMIDiag.vbs: Instrumentul de diagnosticare WMI este un VBScript descărcabil de la Microsoft aici și este un instrument pentru testarea și validarea WMI pe Windows 2000 și versiuni ulterioare. Descărcarea include o documentație destul de amănunțită, iar instrumentul acceptă numeroase comutatoare. Când este rulat, acesta va genera până la patru fișiere text care: listează pașii parcurși (fișierul LOG), o prezentare generală a rezultatelor (fișierul RAPORT), un fișier de statistici (în format de valori separate prin virgulă) și opțional o listă de fișiere a furnizorii înregistrați pe aparat (FURNIZORI, de asemenea, în format de valori separate prin virgulă). Fișierul de raport generat include o listă a problemelor identificate și modalități potențiale de a le remedia.
  • WMI Explorer: Instrumentul WMI Explorer este un program disponibil gratuit și open source descărcabil aici și este un instrument pentru enumerarea și interogarea furnizorilor WMI într-o interfață grafică cu utilizatorul.

Exemplu de rețea fără fir

În .NET Framework , clasa ManagementClass reprezintă o clasă de gestionare Common Information Model (CIM). O clasă WMI poate fi un Win32_LogicalDisk în cazul unei unități de disc sau un Win32_Process, cum ar fi un program în execuție precum Notepad.exe.

Acest exemplu arată modul în care se utilizează clasa „MSNdis_80211_ServiceSetIdentifier“ WMI pentru a găsi SSID - ul de acces Wi-Fi rețea că sistemul este conectat la limbajul C #:

ManagementClass mc = new ManagementClass("root\\WMI", "MSNdis_80211_ServiceSetIdentifier", null);
ManagementObjectCollection moc = mc.GetInstances();
   
foreach (ManagementObject mo in moc)
{
    string wlanCard = (string)mo["InstanceName"];
    bool active;
    if (!bool.TryParse((string)mo["Active"], out active))
    {
       active = false;
    }
    byte[] ssid = (byte[])mo["Ndis80211SsId"];
}

Clasa WMI „MSNdis_80211_ServiceSetIdentifier” este acceptată numai pe Windows XP și Windows Server 2003.

Extensii driver WMI

Extensiile WMI către WDM furnizează instrumente la nivel de nucleu, cum ar fi publicarea informațiilor, configurarea setărilor dispozitivului, furnizarea notificărilor de evenimente de la driverele de dispozitiv și permiterea administratorilor să stabilească securitatea datelor printr-un furnizor WMI cunoscut ca furnizorul WDM . Extensiile fac parte din arhitectura WDM; cu toate acestea, au o utilitate largă și pot fi utilizate și cu alte tipuri de drivere (cum ar fi SCSI și NDIS ). Serviciul WMI Driver Extensions monitorizează toți driverele și furnizorii de urmărire a evenimentelor care sunt configurați pentru a publica informații despre urmărirea evenimentelor sau WMI. Datele hardware instrumentate sunt furnizate prin intermediul driverelor instrumentate pentru extensiile WMI pentru WDM. Extensiile WMI pentru WDM oferă un set de interfețe de driver de dispozitiv Windows pentru instrumentarea datelor în cadrul modelelor de drivere native din Windows, astfel încât OEM-urile și IHV-urile pot extinde cu ușurință setul de date instrumentate și pot adăuga valoare unei soluții hardware / software. Cu toate acestea, extensiile de driver WMI nu sunt acceptate de Windows Vista și de sistemele de operare ulterioare.

Vezi si

Referințe

linkuri externe