La tecnologia Strumentazione gestione Windows (WMI) è l'implementazione Microsoft dell'iniziativa WBEM (Web-Based Enterprise Management) DMTF (Distributed Management Task Force) che consente di estendere il modello CIM (Common Information Model) in modo da rappresentare oggetti di gestione in ambienti di gestione basati su Windows. CIM (Common Information Model), anch'esso uno standard DMTF, è un modello di dati estendibile che consente di organizzare logicamente gli oggetti di gestione in modo coerente e unificato in un ambiente gestito.

WBEM è un'iniziativa e una tecnologia DMTF basata sul modello CIM che definisce gli standard per l'infrastruttura di gestione e consente di accedere in modo standardizzato alle informazioni da diversi sistemi di gestione hardware e software in un ambiente aziendale. Utilizzando gli standard WBEM, gli sviluppatori possono creare strumenti e tecnologie che consentono di ridurre la complessità e i costi della gestione aziendale. Tramite questi standard, WBEM contribuisce all'impegno dell'intero settore per ridurre il costo totale di proprietà. Per costo totale di proprietà si intende il costo amministrativo associato agli acquisti di hardware e software per computer, alla distribuzione e alla configurazione, agli aggiornamenti hardware e software, alla formazione, alla manutenzione e al supporto tecnico.

WBEM offre un punto di integrazione per l'accesso a dati provenienti da origini di gestione e completa ed estende strumentazione e protocolli di gestione esistenti, ad esempio Simple Network Management Protocol (SNMP), Desktop Management Interface (DMI) e Common Management Information Protocol (CMIP).

Tecnologia Strumentazione gestione Windows (WMI)

La tecnologia Strumentazione gestione Windows (WMI) è un'infrastruttura di gestione che supporta la sintassi del modello CIM, ovvero il formato MOF (Managed Object Format), e un'interfaccia di programmazione comune. La sintassi MOF definisce la struttura e il contenuto dello schema CIM in un formato leggibile dall'utente e dal computer. In Strumentazione gestione Windows (WMI) è disponibile un potente insieme di servizi, tra cui il recupero di informazioni basato su query e la notifica degli eventi Questi servizi e i dati di gestione sono accessibili tramite un'interfaccia di programmazione COM (Component Object Model). L'interfaccia di scripting di WMI offre inoltre il supporto per lo scripting.

La tecnologia WMI offre i vantaggi seguenti:

  • Accesso per il monitoraggio, la gestione e il controllo di oggetti gestiti tramite un insieme comune e unificato di interfacce, indipendentemente dal meccanismo di strumentazione sottostante. WMI è un meccanismo di accesso.

  • Modello uniforme di funzionamento, configurazione e stato del sistema operativo Windows.

  • Interfaccia API (Application Programming Interface) COM che offre un singolo punto di accesso per tutte le informazioni di gestione.

  • Interoperabilità con altri servizi di gestione Windows. Questo approccio consente di semplificare il processo di creazione di soluzioni di gestione integrate e ben progettate.

  • Architettura flessibile ed estendibile. Gli sviluppatori possono estendere il modello informativo in modo da supportare nuovi dispositivi e applicazioni scrivendo moduli di codice denominati provider WMI.

  • Estensioni del modello WDM (Windows Driver Model) per l'acquisizione di dati ed eventi di strumentazione da driver di dispositivo e componenti del lato kernel.

  • Potente architettura di eventi che consente di identificare, aggregare e confrontare le modifiche delle informazioni di gestione, nonché di associarle ad altre informazioni di gestione. Queste modifiche inoltre possono essere inoltrate ad applicazioni di gestione locali o remote.

  • Ricco linguaggio di query che consente di eseguire query dettagliate del modello informativo.

  • API configurabile tramite script che può essere utilizzata dagli sviluppatori per creare applicazioni di gestione. L'API di scripting supporta alcuni linguaggi, tra cui Microsoft Visual Basic; Visual Basic, Applications Edition (VBA); Visual Basic, Scripting Edition (VBScript) e il software di sviluppo Microsoft JScript. Oltre a VBScript e JScript, gli sviluppatori possono utilizzare qualsiasi implementazione di linguaggio di scripting che supporti le tecnologie di scripting Microsoft ActiveX con questa API, ad esempio un motore di scripting Perl. È inoltre possibile utilizzare Windows Script Host o Microsoft Internet Explorer per scrivere script con questa interfaccia. Windows Script Host, analogamente a Internet Explorer, funge da motore controller dei motori di script ActiveX e supporta gli script scritti in VBScript e JScript.

Panoramica dell'architettura WMI

L'architettura della tecnologia WMI è costituita dagli elementi seguenti:

  • Infrastruttura di gestione - Include CIM Object Manager, che offre alle applicazioni un accesso uniforme ai dati di gestione e un'area di archiviazione centrale per i dati di gestione denominata archivio di CIM Object Manager.

  • Provider WMI - Provider che funzionano da intermediari tra CIM Object Manager e gli oggetti gestiti. Utilizzando le API WMI, i provider forniscono a CIM Object Manager dati degli oggetti gestiti, gestiscono le richieste per conto di applicazioni di gestione e generano notifiche di eventi.

L'infrastruttura di gestione è costituita da CIM Object Manager e dall'archivio di CIM Object Manager. Le applicazioni dipendono da Object Manager per gestire l'interfaccia tra le applicazioni di gestione e i provider di dati. WMI facilita queste comunicazioni offrendo un'interfaccia di programmazione comune ai servizi di gestione Windows che utilizzano COM. Questa API COM offre servizi di notifica degli eventi e di elaborazione delle query e può essere utilizzata in alcuni ambienti di linguaggi di programmazione, ad esempio C e C++. L'archivio di CIM Object Manager include lo schema CIM e lo schema delle estensioni, nonché dettagli sui dati e sulle origini dati. CIM Object Manager utilizza i dati di schema contenuti in questo archivio per soddisfare le richieste relative agli oggetti gestiti effettuate dalle applicazioni di gestione.

Gli oggetti gestiti sono componenti aziendali fisici o logici basati sul modello CIM. Un oggetto gestito ad esempio può essere un componente hardware, come un cavo, o un componente software, come un'applicazione di database. Le applicazioni di gestione possono utilizzare CIM Object Manager per accedere agli oggetti gestiti.

Le applicazioni di gestione sono applicazioni o servizi di Windows che utilizzano o elaborano informazioni che originano da oggetti gestiti. Le applicazioni di gestione possono accedere alle informazioni sugli oggetti gestiti effettuando una richiesta a CIM Object Manager utilizzando uno dei metodi disponibili nell'API WMI.

I provider WMI sono server COM e DCOM (Distributed Component Object Model) standard che funzionano da mediatori tra gli oggetti gestiti e CIM Object Manager. Se riceve da un'applicazione di gestione una richiesta relativa a dati non disponibili nell'archivio di CIM Object Manager o a notifiche di eventi non supportate, CIM Object Manager inoltra la richiesta a un provider WMI. I provider forniscono dati e notifiche di eventi per gli oggetti gestiti specifici del proprio dominio.

Per implementare un provider, utilizzare uno dei tipi di server supportati seguenti:

• Servizi di Microsoft Windows 2008, locali o remoti.

• File eseguibili (con estensione exe) standard, locali o remoti.

• DLL (librerie di collegamento dinamico) in-process.

Si noti che i servizi di Windows 2008 locali o remoti e gli eseguibili standard sono tipi di server consigliati.

WMI viene fornito con provider predefiniti, ovvero provider standard, che forniscono dati provenienti da origini come il Registro di sistema. Tra i provider predefiniti sono inclusi i seguenti:

  • Provider di Active Directory - Funge da gateway per tutte le informazioni archiviate nel servizio Active Directory. Consente di accedere alle informazioni di WMI e Active Directory tramite una singola API.

  • Provider di Windows Installer - Consente di avere un controllo completo su Windows Installer e sull'installazione del software tramite WMI. Fornisce inoltre informazioni sulle applicazioni installate con Windows Installer.

  • Provider di contatori di prestazioni - Espone le informazioni dei contatori di prestazioni non elaborate utilizzate per calcolare i valori delle prestazioni visualizzati nello strumento Monitor di sistema. Tutti i contatori di prestazioni installati in un sistema saranno automaticamente visibili tramite questo provider.

  • Provider del Registro di sistema - Consente di creare, leggere e scrivere chiavi del Registro di sistema. Quando vengono modificate chiavi specifiche del Registro di sistema possono essere generati eventi WMI.

  • Provider SNMP - Funge da gateway per i sistemi e i dispositivi in cui viene utilizzato il protocollo SNMP (Simple Network Management Protocol) per la gestione. È possibile leggere e scrivere variabili oggetto MIB SNMP. Le trap SNMP possono essere mappate automaticamente a eventi WMI.

  • Provider del registro eventi - Consente di accedere ai dati e alle notifiche di eventi dal registro eventi di Windows Server 2008.

  • Provider Win32 - Fornisce informazioni sul sistema operativo, sul computer, sui dispositivi, sui file system e sulla sicurezza.

  • Provider WDM - Fornisce informazioni su driver Windows Driver Model di basso livello per dispositivi di input utente, dispositivi di archiviazione, interfacce di rete e porte di comunicazione.

  • Provider delle classi di viste - Consente di creare nuove classi aggregate a partire da classi esistenti. Le classi di origine possono essere filtrate in base solo alle informazioni di interesse, le informazioni di più classi possono essere combinate in una singola classe e i dati di più computer possono essere aggregati in una singola visualizzazione.

La tecnologia WMI supporta inoltre provider personalizzati di terze parti. I provider personalizzati possono essere utilizzati per soddisfare richieste correlate a oggetti gestiti specifici dell'ambiente. I provider in genere utilizzano il linguaggio MOF per definire e creare classi e utilizzano l'API WMI per accedere all'archivio di CIM Object Manager e rispondere alle richieste CIM Object Manager effettuate inizialmente dalle applicazioni.

Panoramica di Simple Network Management Protocol

Simple Network Management Protocol (SNMP) è uno standard di gestione delle reti che definisce una strategia per la gestione delle reti TCP/IP.

In SNMP viene utilizzata un'architettura distribuita che include gli elementi seguenti:

  • Più nodi gestiti, ognuno con un'entità SNMP denominata agente che consente di accedere in remoto alla strumentazione di gestione.

  • Almeno un'entità SNMP identificata come gestore che esegue applicazioni di gestione per il monitoraggio e il controllo di elementi gestiti. Gli elementi gestiti sono dispositivi quali host, router e così via che vengono monitorati e controllati tramite l'accesso alle relative informazioni di gestione.

  • Un protocollo di gestione, SNMP, utilizzato per il trasporto di informazioni di gestione tra le stazioni e gli agenti di gestione. Le informazioni di gestione fanno riferimento a un insieme di oggetti gestiti contenuti in un archivio di informazioni virtuale denominato Management Information Base (MIB).

Messaggi SNMP

Per comunicare le informazioni sugli host, i sistemi e gli agenti di gestione utilizzano i messaggi SNMP. Questi messaggi vengono inviati utilizzando il protocollo UDP (User Datagram Protocol) e vengono instradati tra il sistema di gestione e l'host tramite il protocollo IP.

Management Information Base (MIB) include le informazioni richieste dal sistema di gestione. L'archivio MIB di un computer collegato in rete può includere informazioni sulla configurazione e sulle prestazioni della scheda di interfaccia di rete, sullo spazio disponibile sul disco rigido, sulla versione dei driver e delle applicazioni e così via. È possibile scrivere e caricare MIB aggiuntivi per esporre i dati specificati per l'insieme, purché il sistema supporti la raccolta delle informazioni richieste.

Elaborare le richieste di informazioni

Quando un sistema di gestione richiede informazioni, viene eseguita la sequenza di operazioni seguente:

  1. Un sistema di gestione invia una richiesta a un agente utilizzando l'indirizzo IP dell'agente.

  2. L'agente forma un datagramma SNMP contenente un messaggio SNMP e il nome community a cui appartiene il sistema di gestione.

  3. L'agente SNMP riceve il datagramma e verifica il nome community. Se il nome community è valido, l'agente SNMP recupera i dati appropriati. Se invece il nome community non è valido, la richiesta viene rifiutata. Se l'agente è stato configurato per l'invio di una trap di autenticazione, viene inviato un messaggio trap.

  4. Il datagramma SNMP viene restituito al sistema di gestione con le informazioni richieste.

Messaggi

Vengono utilizzati i tipi di messaggi SNMP seguenti:

  • Get - Questo è un messaggio di richiesta. I sistemi di gestione SNMP utilizzano i messaggi Get per richiedere informazioni su una voce MIB in un agente SNMP.

  • Getnext - Tipo di messaggio di richiesta che può essere utilizzato per esplorare un intero albero di oggetti gestiti.

  • Getbulk - Tipo di richiesta che specifica che l'agente trasferisce tutti i dati possibili, entro i limiti delle dimensioni dei messaggi.

  • Set - Viene utilizzato per inviare e assegnare un valore MIB aggiornato a un agente.

  • Notify (o Trap) - Questo è un messaggio non richiesto inviato da un agente a un sistema di gestione SNMP quando viene rilevato che si è verificato un determinato tipo di evento localmente nell'host gestito.

Poiché gli eventi o le trap SNMP vengono inviate non richieste a una stazione di gestione che filtra gli eventi, viene creato traffico di rete. Con WMI gli eventi vengono filtrati localmente e solo quelli che soddisfano i criteri di filtro vengono inviati sulla rete, riducendo in questo modo la larghezza di banda necessaria per gli eventi di interesse.

Supporto per SNMP in WMI SDK

Il provider SNMP include i componenti seguenti:

  • Provider di classi, istanze ed eventi che integrano la modellazione e l'elaborazione delle informazioni SNMP in WMI. Questi provider SNMP mappano gli insiemi di valori oggetto ai valori proprietà di istanze di classi CIM.

  • Un compilatore di moduli di informazioni SNMP che compila le informazioni dello schema SNMP nativo nel formato utilizzato da CIM.

Provider SNMP

I provider SNMP restituiscono informazioni dinamiche. Per specificare rispetto a quale insieme di classi deve operare il provider di istanze, è possibile procedere in uno dei due modi seguenti:

  • In modo statico - Creando classi nello spazio dei nomi dell'archivio di oggetti CIM associato al dispositivo proxy.

  • In modo dinamico - Utilizzando il provider di classi SNMP, che restituisce l'insieme di classi contenute nello spazio dei nomi SMIR (SNMP Module Information Repository).

È inoltre possibile specificare se utilizzare o meno la correlazione per l'insieme di classi restituite dallo spazio dei nomi SMIR. Le classi correlate definiscono l'insieme di classi supportate da un agente SNMP al momento dell'enumerazione. L'enumerazione non correlata restituisce tutte le classi presenti nello spazio dei nomi SMIR, indipendentemente dal fatto che siano supportate dal dispositivo agente.

Di seguito vengono elencati i provider SNMP:

  • Provider di classi e di istanze SNMP, utilizzati dalle applicazioni per accedere ai dati che si riferiscono ai dispositivi SNMP e modificarli.

  • Provider di eventi SNMP, che generano eventi da trap e notifiche SNMP. Questi provider segnalano gli stessi tipi di eventi, ma in formati diversi: Incapsulato e Referente. Incapsulato indica che la classe di eventi dispone di proprietà semplici che descrivono le informazioni mappate direttamente dalle macro TRAP-TYPE e NOTIFICATION-TYPE, illustrate nella sezione seguente. Le classi di tipo Referente estraggono le informazioni presenti nelle macro in modo che le proprietà che condividono le stessa classe e la stessa istanza vengano presentate come oggetti incorporati. È così possibile eseguire l'estrazione di __RELPATH in modo che l'istanza univoca a cui è associata la trap possa essere recuperata dopo la ricezione dell'evento. Per scegliere un formato, gli utenti effettuano la registrazione per una classe particolare di eventi.

Mappare dati di dispositivo a classi CIM

I provider SNMP mappano i dati di dispositivo alle classi CIM nei modi seguenti:

  • Enumerando le definizioni delle classi SNMP. Per enumerare un insieme di definizioni di classi, le applicazioni possono chiamare IWbemServices::CreateClassEnum oppure IWbemServices::CreateClassEnumAsync.

    Gli oggetti MIB vengono mappati alle classi CIM SNMP tramite la macro OBJECT-TYPE. Gli eventi vengono mappati alle classi tramite le macro TRAP-TYPE e NOTIFICATION-TYPE.

    La macro OBJECT-TYPE viene utilizzata per descrivere le caratteristiche di base di un oggetto MIB. Nelle macro SNMPv1 TRAP-TYPE e SNMPv2C NOTIFICATION-TYPE sono descritte le caratteristiche di un evento SNMP.

  • Creando un'istanza delle definizioni delle classi SNMP. Per creare un'istanza di una definizione di classe, le applicazioni possono chiamare IWbemServices::GetObject oppure IWbemServices::GetObjectAsync.

  • Enumerando le istanze delle classi SNMP. Il provider di istanze SNMP soddisfa le richieste di enumerazione delle istanze associate alle classi che rappresentano MIB di dispositivi.

  • Creando un'istanza delle istanze delle classi SNMP. Il provider di istanze SNMP elabora le richieste di creazione di un'istanza delle istanze di classi che rappresentano oggetti MIB.

  • Recuperando le istanze delle classi SNMP. Per recuperare un'istanza specifica di una classe CIM SNMP, le applicazioni possono chiamare IWbemServices::GetObject oppure IWbemServices::GetObjectAsync.

SNMP e schema CIM

Lo schema utilizzato da SNMP per definire gli oggetti differisce da quello utilizzato nel modello CIM di WMI. Lo schema SNMPv1 e SNMPv2 è denominato SMI (Structure of Management Information) ed è inserito nel pacchetto nel formato di file MIB. Per definire gli oggetti, i file MIB utilizzano il linguaggio standard Abstract Syntax Notation 1 (ASN.1) e le definizioni delle macro utilizzate come modelli. Queste macro forniscono informazioni sull'oggetto, inclusi il nome, l'identificatore, la sintassi, la descrizione, i diritti di accesso e così via.

I provider SNMP WMI convertono le macro MIB seguenti:

  • OBJECT-TYPE - Descrive le caratteristiche di base di un oggetto, ad esempio il nome, la sintassi, i diritti di accesso di un oggetto e così via. Si riferisce a SNMPv1 e SNMPv2C.

  • TEXTUAL-CONVENTION - Assegna un nome e in alcuni casi un intervallo di valori a un tipo di dati esistente. Si riferisce solo a SNMPv2C.

  • TRAP-TYPE - Descrive i messaggi di eventi (trap). Si riferisce solo a SNMPv1.

  • NOTIFICATION-TYPE - Descrive i messaggi di eventi (notifiche). Si riferisce solo a SNMPv2C.

Il provider di classi SNMP enumera e crea un'istanza di un insieme di definizioni di classi rispetto a uno spazio dei nomi CIM. A tale scopo, utilizza un correlatore MIB e l'archivio SMIR (SNMP Module Information Repository), un database di schemi SNMP. Il provider di classi SNMP supporta modalità correlate e non correlate. Per designare una di queste modalità, impostare un valore contestuale (IWbemContext) correlato di tipo booleano e passarlo nel metodo IWbemServices. Il provider di classi SNMP supporta sia l'enumerazione di definizioni di classi che il recupero di una definizione di classe.

Il provider di istanze SNMP mappa oggetti MIB SNMP a istanze di classi.

Spazio dei nomi SNMP

Per definire una visualizzazione di un dispositivo di rete, viene utilizzato uno spazio dei nomi SNMP. Per creare uno spazio dei nomi SNMP, è possibile utilizzare l'applicazione WMI CIM Studio di WMI SDK, compilare un file MOF o utilizzare un'API WMI a livello di programmazione.

La classe di sistema Namespace viene utilizzata per rappresentare uno spazio dei nomi SNMP. Per generare un nuovo spazio dei nomi, creare un'istanza di questa classe. È necessario associare almeno un descrittore o qualificatore all'istanza della classe. I qualificatori contengono informazioni sul contesto specifiche dell'implementazione e trasportano le proprietà che definiscono il modo in cui i provider SNMP accedono a un agente SNMP.

Rappresentazione di dispositivi SNMP

I dispositivi SNMP sono rappresentati in WMI tramite uno spazio dei nomi proxy contenente un insieme di qualificatori di istanze. Questi qualificatori descrivono le caratteristiche del trasporto relative al dispositivo. In WMI viene utilizzato un file MOF, snmpreg.mof, per creare lo spazio dei nomi \\.\root\snmp\localhost. Questo è uno spazio dei nomi standard che rappresenta l'agente SNMP locale.

SNMPv2C

SNMPv2C è supportato nel contesto WMI. Lo scopo principale di SNMPv2C è quello di offrire un contesto di sicurezza superiore per SNMP. In questa versione viene utilizzata la funzionalità di autenticazione semplice e non sicura basata su password, conosciuta come funzionalità di community (disponibile in SNMPv1). In SMI di SNMPv2 vengono introdotti alcune integrazioni e alcuni miglioramenti per la sicurezza community, ad esempio l'utilizzo di stringhe di bit, indirizzi di rete e contatori nei tipi di dati specifici di SMI di SNMPv1. SMI di SNMPv2 inoltre specifica moduli di informazioni, che definiscono un gruppo di definizioni correlate. SNMPv2 infine definisce due nuove operazioni di protocollo: GetBulk e Inform.

Sicurezza

La sicurezza WMI convalida le informazioni di accesso di un utente sia per il computer locale che per l'accesso remoto. WMI concede a un utente convalidato una forma di accesso controllato all'intero archivio CIM. Nella versione corrente WMI non garantisce sicurezza per le risorse di sistema, ad esempio singole classi e istanze. Gli amministratori tuttavia possono utilizzare WMI per controllare le autorizzazioni globali per le operazioni relative allo schema, ad esempio limitando l'accesso di alcuni utenti alle operazioni di sola lettura. WMI inoltre supporta la sicurezza per ogni spazio dei nomi. Il provider SNMP inoltre offre il supporto per tutta la sicurezza basata su SNMP, inclusi i miglioramenti della sicurezza apportati in SNMPv2C.

Compilatore di moduli di informazioni SNMP

Il compilatore di moduli di informazioni SNMP viene utilizzato per compilare informazioni di gestione SNMP native definite in un archivio MIB in una definizione di schema CIM equivalente che può essere utilizzata con i provider SNMP. Lo schema CIM può esistere come output in un file MOF o essere caricato in un database di schemi SNMP, ovvero un archivio SMIR (SNMP Module Information Repository). Nel provider di classi dinamiche SNMP viene utilizzato l'archivio SMIR (SNMP Module Information Repository) per creare e recuperare istanze di definizioni di classi.

Il compilatore di moduli di informazioni SNMP viene eseguito in modalità riga di comando come file eseguibile utilizzando un modulo di informazioni SNMP come input e altri file aggiuntivi eventualmente necessari per risolvere riferimenti esterni. I moduli di informazioni SNMP sono insiemi di informazioni di gestione costituite in genere da una combinazione di moduli MIB e istruzioni AGENT-CAPABILITIES e MODULE-COMPLIANCE. Le istruzioni AGENT-CAPABILITIES descrivono la conformità di un agente all'insieme di moduli MIB supportati. Le istruzioni MODULE-COMPLIANCE descrivono le funzionalità di un agente relativamente alle definizioni di oggetti.

Il compilatore di moduli di informazioni SNMP inoltre offre le funzionalità seguenti:

  • Esegue operazioni di controllo nel modulo di informazioni. Controlla ad esempio la sintassi locale e i riferimenti esterni confrontandoli con le informazioni contenute nei moduli supplementari.

  • Rimuove tutti i dati precedentemente caricati dall'archivio SMIR o rimuove i dati caricati da un modulo di informazioni.

  • Restituisce il nome di modulo ASN.1 di un file specificato o i nomi di modulo ASN.1 di tutti i moduli importati in un file specificato.

  • Restituisce i nomi di modulo ASN.1 di tutti i moduli di informazioni SNMP attualmente caricati nell'archivio SMIR.

  • Esegue la risoluzione automatica dei moduli importati anziché richiedere agli utenti di specificare manualmente i moduli necessari.

  • Esegue una modalità di operazione con caricamento invisibile all'utente che non genera output, ma può essere utilizzata per caricare dati nell'archivio SMIR durante un'operazione di installazione.

Vedere anche


Argomenti della Guida