Creazione di gerarchie all'interno di WMI

Lo spazio dei nomi WMI è un oggetto di programmazione che definisce l'ambito per un set di classi e istanze. Le classi del provider WMI devono essere definite all'interno di uno spazio dei nomi.

Gli spazi dei nomi descrivono ambienti gestiti diversi, ad esempio l'ambiente SMS. Poiché le classi e le istanze di uno schema definiscono i componenti di un ambiente gestito, ogni nuovo schema richiede un nuovo spazio dei nomi. Ad esempio, lo spazio dei nomi root\cimv2 contiene le classi e le istanze definite nello schema Win32 e le classi COMMON Information Model (CIM) padre da cui eredita lo schema Win32. Le classi CIM sono definite da Distributed Management Task Force (DMTF).

Nota

Per assicurarsi che tutte le definizioni di classe WMI per gli oggetti gestiti vengano ripristinate nel repository WMI se WMI ha un errore e viene riavviato, usare l'istruzione #pragma preprocessore di ripristino automatico nel file MOF (Managed Object Format).

 

WMI definisce uno spazio dei nomi come istanza della classe di sistema __Namespace o qualsiasi classe derivata da __Namespace. La classe di sistema __Namespace ha una singola proprietà denominata Name, che deve essere univoca nell'ambito dello spazio dei nomi padre. La proprietà Name deve contenere anche una stringa che inizia con una lettera. Tutti gli altri caratteri della stringa possono essere lettere, cifre o caratteri di sottolineatura. Tutti i caratteri sono senza distinzione tra maiuscole e minuscole.

Oltre a determinare il nome univoco per uno spazio dei nomi figlio, lo spazio dei nomi WMI padre può proteggere le istanze statiche delle classi da modifiche accidentali da altri provider. Ad esempio, potrebbe essere utile annidare un nuovo spazio dei nomi in uno spazio dei nomi esistente per un altro provider. Tuttavia, il provider originale potrebbe provare ad aggiornare tutte le istanze della classe in modo che corrispondano a un nuovo schema. In questo modo, il provider originale può eliminare tutti i sotto-figlio in uno spazio dei nomi. Anche se questo può essere un'azione appropriata per lo spazio dei nomi di destinazione, può influire sulle istanze di classi non correlate in uno spazio dei nomi figlio ,ad esempio le classi del provider.

Pertanto, è consigliabile creare e registrare lo spazio dei nomi come separato dagli spazi dei nomi che non si controllano direttamente. Ciò è particolarmente vero se le classi derivano solo dalle classi CIM generali o da altre classi dell'azienda. Lo spazio dei nomi può essere compreso nello spazio dei nomi Radice , ad esempio quanto segue:

Radice/myCompany/myProduct

Al contrario, se la nuova classe deriva dalla classe di un altro provider, potrebbe essere necessario archiviare la classe in un sotto-spazio dei nomi di tale provider. Si noti che questa espone la nuova classe all'eliminazione accidentale dal provider originale.

WMI offre diversi modi per creare uno spazio dei nomi:

Progettazione di classi MOF (Managed Object Format)