Strumentazione gestione Windows - Windows Management Instrumentation

Strumentazione gestione Windows
Autori originali Microsoft
Sviluppatore/i Microsoft
Sistema operativo Microsoft Windows
piattaforma IA-32 , x86-64 e ARM (storicamente Itanium , DEC Alpha , MIPS e PowerPC )
Tipo Gestione dei sistemi
Licenza proprietario
Sito web docs .microsoft .com /en-us /versioni-precedenti /windows /desktop /wmi _v2 /windows-management-infrastructure

Strumentazione gestione Windows ( WMI ) è costituito da un set di estensioni per il modello di driver di Windows che fornisce un'interfaccia del sistema operativo attraverso la quale i componenti instrumentati forniscono informazioni e notifiche. WMI è l'implementazione di Microsoft degli standard Web-Based Enterprise Management (WBEM) e Common Information Model (CIM) della Distributed Management Task Force (DMTF).

WMI consente ai linguaggi di scripting (come VBScript o Windows PowerShell ) di gestire personal computer e server Microsoft Windows , sia in locale che in remoto. WMI è preinstallato in Windows 2000 e nei sistemi operativi Microsoft più recenti . È disponibile come download per Windows NT e Windows 95 per Windows 98 .

Microsoft fornisce anche un'interfaccia della riga di comando per WMI denominata riga di comando di Strumentazione gestione Windows ( WMIC ).

Scopo di WMI

Lo scopo di WMI è definire un insieme proprietario di specifiche indipendenti dall'ambiente che consentano la condivisione delle informazioni di gestione tra le applicazioni di gestione. WMI prescrive standard di gestione aziendale e tecnologie correlate per Windows che funzionano con gli standard di gestione esistenti, come Desktop Management Interface (DMI) e SNMP . WMI integra questi altri standard fornendo un modello uniforme. Questo modello rappresenta l'ambiente gestito attraverso il quale è possibile accedere in modo comune ai dati di gestione da qualsiasi origine.

Processo di sviluppo

Poiché WMI astrae le entità gestibili con CIM e una raccolta di provider, lo sviluppo di un provider implica diversi passaggi. I passaggi principali possono essere riassunti come segue:

  1. Creare il modello di entità gestibile
    1. Definire un modello
    2. Implementa il modello
  2. Creare il provider WMI
    1. Determinare il tipo di provider da implementare
    2. Determinare il modello di hosting del provider
    3. Crea il modello del provider con la procedura guidata ATL
    4. Implementare la logica del codice nel provider
    5. Registra il provider con WMI e il sistema
  3. Prova il fornitore
  4. Crea codice di esempio per il consumatore.

Importanza dei provider WMI

Dal rilascio della prima implementazione WMI durante l'era di Windows NT 4.0 SP4 (come download fuori banda), Microsoft ha costantemente aggiunto provider WMI a Windows:

  • In Windows NT 4.0, Microsoft aveva a disposizione circa 15 provider WMI dopo l'installazione di WMI
  • Quando è stato rilasciato Windows 2000 , c'erano 29 provider WMI come parte dell'installazione del sistema operativo
  • Con il rilascio di Windows Server 2003 , Microsoft ha incluso nella piattaforma più di 80 provider WMI
  • Windows Vista include 13 nuovi provider WMI, portando il numero vicino a circa 100 in tutto
  • Windows Server 2008 include più provider, inclusi provider per IIS 7, PowerShell e virtualizzazione
  • Windows 10 include 47 provider per il servizio Mobile Device Management (MDM).

Molti clienti hanno interpretato la crescita del numero di provider come un segno che WMI è diventato in Microsoft il livello di gestione "onnipresente" di Windows, anche se Microsoft non ha mai reso esplicito questo impegno.

A causa di una crescente esposizione dei dati di gestione tramite WMI in Windows, le persone nel campo della gestione dei sistemi IT hanno iniziato a sviluppare script e procedure di automazione basate su WMI. Oltre alle esigenze di scripting, la maggior parte dei principali pacchetti software di gestione, come MOM , SCCM , ADS, HP OpenView for Windows (HPOV), BMC Software o CA, Inc. sono abilitati per WMI e in grado di utilizzare e fornire informazioni WMI attraverso vari utenti Interfacce . Ciò consente agli amministratori e agli operatori non in grado di creare script o programmare su WMI di godere dei vantaggi di WMI senza nemmeno conoscerlo. Tuttavia, se lo desiderano, poiché WMI è scriptabile, offre loro l'opportunità di utilizzare le informazioni WMI dagli script o da qualsiasi software di gestione aziendale compatibile con WMI .

Caratteristiche

Per chi è disposto a sviluppare uno o più provider WMI, WMI offre molte funzionalità pronte all'uso. Ecco i vantaggi più importanti:

  1. Interfacce di automazione:
    poiché WMI viene fornito con un set di interfacce di automazione pronte per l'uso, tutte le funzionalità di gestione supportate da un provider WMI e il relativo set di classi ottengono il supporto di scripting gratuito e immediato. Oltre alla progettazione della classe WMI e allo sviluppo del provider, i team di sviluppo e test Microsoft non sono tenuti a creare, convalidare o testare un modello di scripting poiché è già disponibile da WMI.
  2. Interfacce di gestione .NET :
    poiché lo spazio dei nomi System.Management si basa sull'impiantoidraulico COM / DCOM esistente, il provider WMI creato e il relativo set di classi WMI diventano automaticamente disponibili per tutte le applicazioni .NET indipendentemente dal linguaggio utilizzato (ad es. C# , VB.NET ). Oltre alla progettazione della classe WMI e allo sviluppo del provider, come per gli script, i team di sviluppo e test Microsoft non sono tenuti a creare, convalidare e testare nuovi assembly per supportare un nuovo spazio dei nomi in .NET Framework poiché questo supporto è già disponibile da WMI per gratuito.
  3. Interfacce di programmazione COM/DCOM C/C++:
    come la maggior parte dei componenti in Windows, i programmatori COM/DCOM possono sfruttare le funzionalità del provider che sviluppano a livello di interfacce COM/DCOM. Come negli ambienti precedenti (script e .NET Framework ), un consumer COM/DCOM deve solo interagire con il set standard di interfacce COM WMI per sfruttare le funzionalità del provider WMI e il relativo set di classi WMI supportate. Per rendere disponibili tutte le informazioni di gestione dalle API native, lo sviluppatore del provider WMI deve solo interagire con un set di interfacce COM WMI predefinite. Ciò renderà automaticamente disponibili le informazioni di gestione a livello di WMI COM. Inoltre, il modello a oggetti dell'interfaccia COM di scripting è molto simile al modello a oggetti dell'interfaccia COM/DCOM, il che facilita agli sviluppatori la familiarità con l'esperienza di scripting.
  4. Funzionalità di comunicazione remota su DCOM e SOAP :
    più che offrire semplicemente funzionalità COM locali, poiché la gestione è interamente basata sulla comunicazione remota , WMI offre il trasporto DCOM. Inoltre, il trasporto SOAP sarà disponibile in Windows Server 2003 R2 attraverso l' iniziativa WS-Management guidata da Microsoft , Intel , Sun Microsystems e Dell . Questa iniziativa consente di eseguire qualsiasi script in remoto o di consumare dati WMI tramite un set specifico di interfacce che gestiscono richieste/risposte SOAP. Il vantaggio per lo sviluppatore del provider WMI è che quando espone tutte le sue funzionalità tramite WMI, Gestione remota di Windows /WS-Management può a sua volta consumare anche tali informazioni (gli oggetti incorporati nelle istanze WMI non sono supportati in Windows Server 2003 R2. È comunque un obiettivo per Vista). Tutta la stratificazione su WS-Management e la mappatura del modello dati CIM su SOAP viene fornita gratuitamente dalla soluzione WMI/WS-Management. Nel caso sia necessario utilizzare DCOM, l'implementazione di DCOM richiede la presenza di una DLL proxy distribuita su ogni macchina client. Poiché WMI è disponibile nel sistema operativo Windows a partire da Windows 2000, questi problemi vengono eliminati.
  5. Supporto per le query:
    WMI offre supporto per le query WQL pronto all'uso . Ciò significa che se un provider non è progettato per supportare le query, WMI lo supporta utilizzando una tecnica di enumerazione fuori dal provider.
  6. Funzionalità di creazione di eventi:
    WMI offre la capacità di notificare a un sottoscrittore qualsiasi evento a cui è interessato. WMI utilizza WMI Query Language (WQL) per inviare query di eventi WQL e definisce il tipo di eventi da restituire. Il meccanismo degli eventi, con tutti i relativi callback, fa parte delle interfacce WMI COM/DCOM e di automazione. Chiunque scriva un provider WMI può usufruire gratuitamente di questa funzionalità per i propri clienti. Spetterà al consumatore decidere come desidera utilizzare le informazioni di gestione esposte dal provider WMI e il relativo insieme di classi WMI.
  7. Generatore di modelli di codice:
    per accelerare il processo di scrittura di un provider WMI, comprese tutte le interfacce COM/DCOM e le relative definizioni, il team WMI ha sviluppato la procedura guidata ATL WMI per generare il modello di codice che implementa un provider. Il codice generato si basa sul modello di classe WMI inizialmente progettato dallo sviluppatore. Lo sviluppatore del provider WMI sarà in grado di interfacciare le interfacce COM/DCOM predefinite per il provider WMI con il suo set di API native recuperando le informazioni di gestione da esporre. L'esercizio consiste nel colmare le “lacune” nel codice del provider per creare la logica di interfacciamento desiderata.
  8. Prevedibilità: la
    prevedibilità è una preoccupazione importante per i professionisti IT perché definisce la capacità di qualcuno che ha esperienza con un insieme di interfacce che gestiscono un componente Windows di applicare questa conoscenza immediatamente, intuitivamente, a qualsiasi altro componente Windows gestibile senza dover reimparare tutto da terra su. La prevedibilità per un cliente è un vero guadagno in quanto aumenta il ritorno dell'investimento ( ROI ). Una persona che affronta una situazione del genere si aspetta semplicemente che le cose funzionino allo stesso modo in base alla sua esperienza precedente. Il costante aumento della programmazione COM/interfacce script ha un enorme impatto sulla prevedibilità, poiché ciò rende difficile per i clienti automatizzare, gestire Windows e sfruttare le proprie conoscenze esistenti. WMI con CIM risolve questo problema esponendo sempre lo stesso modello di oggetti di programmazione (COM/DCOM, Automation, .NET) qualunque sia l'entità gestibile.
  9. Proteggere gli investimenti dei clienti esistenti: la
    protezione degli investimenti di clienti e partner motiva i clienti a investire nelle tecnologie. Poiché Microsoft ha investito molto negli ultimi anni nella scrittura di provider WMI, clienti e partner hanno investito in strumenti che sfruttano le funzionalità WMI di Windows. Pertanto, continuano naturalmente a sfruttare queste capacità invece di dover utilizzare un nuovo set di interfacce specifiche per ogni componente gestibile di Windows. Un insieme specifico di interfacce significa disporre di un insieme specifico di agenti o software sviluppato internamente basato su un nuovo modello o insieme di interfacce appositamente dedicato a un componente o a una tecnologia. Sfruttando le capacità di WMI oggi, clienti e partner possono sfruttare l'investimento di lavoro fatto in passato riducendo al minimo i costi in sviluppi, curve di apprendimento e nuove scoperte. Ciò avrà anche un grande impatto sulla stabilità e affidabilità della loro infrastruttura poiché continuano a sfruttare un'implementazione esistente con una tecnologia migliorata.
  10. Fornire un modello di amministrazione logico e unificato:
    come descritto brevemente in precedenza nell'introduzione, questo modello si basa su uno standard industriale chiamato CIM definito dal DMTF ( http://www.dmtf.org ). Lo schema basato sulla classe CIM è definito da un consorzio di costruttori e sviluppatori di software che soddisfa i requisiti del settore. Ciò implica che non solo Microsoft sfrutta le funzionalità WMI, ma anche altri costruttori o sviluppatori di terze parti scrivono il proprio codice per adattarsi al modello. Ad esempio, Intel sta facendo questo per alcuni dei suoi adattatori e software per driver di rete. HP sfrutta i provider WMI esistenti e implementa i propri provider WMI nel software HP Open View Enterprise Management . IBM utilizza WMI dalla suite di gestione Tivoli , anche MOM e SMS utilizzano e forniscono informazioni WMI. Infine, Windows XP SP2 sfrutta WMI per ottenere lo stato delle informazioni da software antivirus e firewall.

Strumenti WMI

Alcuni strumenti WMI possono essere utili anche durante le fasi di progettazione e sviluppo. Questi strumenti sono:

  • Il compilatore MOF (MOFComp.exe): il compilatore Managed Object Format (MOF) analizza un file contenente istruzioni Managed Object Format e aggiunge le classi e le istanze di classe definite nel file al repository CIM. Il formato MOF è una sintassi specifica per definire la rappresentazione della classe CIM in un file ASCII (ad es. MIB sta a SNMP come i file MOF stanno a CIM). MOFComp.exe è incluso in ogni installazione di WMI. Ogni definizione esistente nel repository CIM è inizialmente definita in un file MOF. I file MOF si trovano in %SystemRoot%\System32\WBEM. Durante l'installazione di WMI, vengono caricati nel repository CIM.
  • Strumenti di amministrazione WMI: Gli strumenti di amministrazione WMI sono costituiti da quattro strumenti: WMI CIM Studio, Browser oggetti WMI, Registrazione eventi WMI e Visualizzatore eventi WMI. Lo strumento più importante per uno sviluppatore di provider WMI è WMI CIM Studio poiché aiuta nella creazione iniziale della classe WMI nel repository CIM. Utilizza un'interfaccia web per visualizzare le informazioni e si basa su una raccolta di componenti ActiveX installati sul sistema quando viene eseguito per la prima volta. WMI CIM Studio offre la possibilità di:
    • Connettiti a un sistema scelto e sfoglia il repository CIM in qualsiasi spazio dei nomi disponibile.
    • Cerca le classi in base al loro nome, alle loro descrizioni o ai nomi delle proprietà.
    • Rivedere le proprietà, i metodi e le associazioni relative a una determinata classe.
    • Vedere le istanze disponibili per una data classe del sistema esaminato.
    • Eseguire query nel linguaggio WQL.
    • Genera un file MOF in base alle classi selezionate.
    • Compilare un file MOF per caricarlo nel repository CIM.
  • WinMgmt.exe: WinMgmt.exe non è uno strumento; è l'eseguibile che implementa il servizio WMI Core. Nella famiglia di sistemi operativi Windows NT, WMI viene eseguito come servizio. Sui computer che eseguono Windows 98, Windows 95 o Windows Me, WMI viene eseguito come un'applicazione. Nella famiglia di sistemi operativi Windows NT, è anche possibile eseguire questo eseguibile come un'applicazione, nel qual caso l'eseguibile viene eseguito nel contesto utente corrente. Per questo, è necessario arrestare prima il servizio WMI. L'eseguibile supporta alcune opzioni che possono essere utili quando si avvia WMI come servizio o come applicazione. Gli sviluppatori di provider WMI che potrebbero voler eseguire il debug dei propri provider devono essenzialmente eseguire il servizio WMI come applicazione.
  • WBEMTest.exe: WBEMTest.exe è uno strumento di test WMI, fornito con WMI. Questo strumento consente a un amministratore o a uno sviluppatore di eseguire la maggior parte delle attività da un'interfaccia grafica fornita da WMI a livello di API . Sebbene sia disponibile con tutti i sistemi operativi basati su Windows NT, questo strumento non è ufficialmente supportato da Microsoft. WBEMTest offre la possibilità di:
    • Enumerare, aprire, creare ed eliminare classi.
    • Enumerare, aprire, creare ed eliminare istanze di classi.
    • Seleziona uno spazio dei nomi.
    • Eseguire query su dati ed eventi.
    • Esegue metodi associati a classi o istanze.
    • Esegui ogni operazione WMI in modo asincrono, sincrono o semi-asincrono.
wmic
Sviluppatore/i Microsoft
Sistema operativo Microsoft Windows
Tipo Comando
Licenza Software commerciale proprietario
Sito web docs .microsoft .com /en-us /windows-server /administration /windows-commands /wmic
  • Lo strumento della riga di comando WMI (WMIC): WMIC è uno strumento della riga di comando progettato per facilitare il recupero delle informazioni WMI su un sistema utilizzando alcune semplici parole chiave (alias). WMIC.exe è disponibile solo in Windows XP Professional, Windows Server 2003, Windows Vista, Windows 7 e Windows Server 2008. Digitando "WMIC /?" dalla riga di comando è disponibile un elenco completo delle opzioni e delle parole chiave riservate.
    • Esiste una porta Linux dello strumento da riga di comando WMI, scritta in Python, basata su Samba4 chiamata "wmi-client"
  • WBEMDump.exe: WBEMDump è uno strumento fornito con Platform SDK . Questo strumento da riga di comando viene fornito con il proprio progetto Visual C++. Lo strumento può mostrare le classi del repository CIM, le istanze o entrambi. È possibile recuperare le stesse informazioni recuperate con WMIC. WBEMDump.exe richiede una conoscenza più specifica di WMI, in quanto non astrae WMI come WMIC. Tuttavia, funziona con Windows NT 4.0 e Windows 2000. È anche possibile eseguire metodi esposti da classi o istanze. Anche se non è uno strumento WMI standard fornito con l'installazione del sistema, questo strumento può essere molto utile per esplorare il repository CIM e le funzionalità WMI.
  • WMIDiag.vbs: WMI Diagnosis Tool è un VBScript scaricabile da Microsoft qui ed è uno strumento per testare e convalidare WMI su Windows 2000 e versioni successive. Il download include una documentazione piuttosto completa e lo strumento supporta numerosi switch. Quando viene eseguito, genererà fino a quattro file di testo che: elencano i passaggi effettuati (file LOG), una panoramica dei risultati (file REPORT), un file di statistiche (in formato con valori separati da virgole) e, facoltativamente, un elenco di file di i fornitori registrati sulla macchina (FORNITORI, anche in formato valori separati da virgola). Il file di report che viene generato include un elenco dei problemi identificati e potenziali modi per risolverli.
  • WMI Explorer: WMI Explorer Tool è un programma gratuito e opensource scaricabile qui ed è uno strumento per enumerare e interrogare i provider WMI in un'interfaccia utente grafica.

Esempio di rete wireless

In .NET Framework la classe ManagementClass rappresenta una classe di gestione Common Information Model (CIM). Una classe WMI può essere un Win32_LogicalDisk nel caso di un'unità disco o un Win32_Process, come un programma in esecuzione come Notepad.exe.

Questo esempio mostra come viene utilizzata la classe WMI "MSNdis_80211_ServiceSetIdentifier" per trovare l' SSID della rete Wi-Fi a cui il sistema è attualmente connesso nel linguaggio 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"];
}

La classe WMI "MSNdis_80211_ServiceSetIdentifier" è supportata solo su Windows XP e Windows Server 2003.

Estensioni del driver WMI

Le estensioni WMI a WDM forniscono strumentazione a livello di kernel come la pubblicazione di informazioni, la configurazione delle impostazioni del dispositivo, la fornitura di notifiche di eventi dai driver di dispositivo e la possibilità per gli amministratori di impostare la sicurezza dei dati tramite un provider WMI noto come provider WDM . Le estensioni fanno parte dell'architettura WDM; tuttavia, hanno un'ampia utilità e possono essere utilizzati anche con altri tipi di driver (come SCSI e NDIS ). Il servizio WMI Driver Extensions monitora tutti i driver ei provider di traccia eventi configurati per pubblicare informazioni WMI o di traccia eventi. I dati hardware strumentati vengono forniti tramite driver strumentati per le estensioni WMI per WDM. Le estensioni WMI per WDM forniscono un set di interfacce di driver di dispositivo Windows per la strumentazione dei dati all'interno dei modelli di driver nativi di Windows, in modo che OEM e IHV possano estendere facilmente il set di dati strumentati e aggiungere valore a una soluzione hardware/software. Le estensioni driver WMI, tuttavia, non sono supportate da Windows Vista e dai sistemi operativi successivi.

Guarda anche

Riferimenti

link esterno