Création de hiérarchies dans WMI

L’espace de noms WMI est un objet de programmation qui définit l’étendue d’un ensemble de classes et d’instances. Les classes de fournisseur WMI doivent être définies à l’intérieur d’un espace de noms.

Les espaces de noms décrivent différents environnements managés, tels que l’environnement SMS. Étant donné que les classes et les instances d’un schéma définissent les composants d’un environnement managé, chaque nouveau schéma nécessite un nouvel espace de noms. Par exemple, l’espace de noms root\cimv2 contient les classes et instances définies dans le schéma Win32, ainsi que les classes CIM (Common Information Model) parentes dont hérite le schéma Win32. Les classes CIM sont définies par le Groupe de travail de gestion distribuée (DMTF).

Notes

Pour vous assurer que toutes vos définitions de classe WMI pour les objets managés sont restaurées dans le référentiel WMI en cas d’échec et de redémarrage de WMI, utilisez l’instruction de préprocesseur #pragma autorecover dans votre fichier Managed Object Format (MOF).

 

WMI définit un espace de noms comme une instance de la classe système __Namespace ou de toute classe dérivée de __Namespace. La classe système __Namespace a une propriété unique appelée Name, qui doit être unique dans l’étendue de l’espace de noms parent. La propriété Name doit également contenir une chaîne qui commence par une lettre. Tous les autres caractères de la chaîne peuvent être des lettres, des chiffres ou des traits de soulignement. Tous les caractères ne respectent pas la casse.

En plus de déterminer le nom unique d’un espace de noms enfant, l’espace de noms WMI parent peut protéger les instances statiques de vos classes contre toute modification accidentelle par d’autres fournisseurs. Par exemple, vous pouvez trouver pratique d’imbriquer un nouvel espace de noms sous un espace de noms existant pour un autre fournisseur. Toutefois, le fournisseur d’origine peut essayer de mettre à jour toutes les instances de classe pour qu’elles correspondent à un nouveau schéma. Ce faisant, le fournisseur d’origine peut supprimer tous les sous-enfants d’un espace de noms. Bien qu’il s’agisse d’une action appropriée pour l’espace de noms cible, elle peut affecter des instances de classe non liées dans un espace de noms enfant (c’est-à-dire vos propres classes de fournisseur).

Par conséquent, il est généralement recommandé de créer et d’inscrire votre espace de noms en tant qu’espace de noms distinct des espaces de noms que vous ne contrôlez pas directement. Cela est particulièrement vrai si vos classes dérivent uniquement de classes CIM générales ou d’autres classes de votre entreprise. Votre espace de noms peut se trouver sous l’espace de noms Root, par exemple :

Root/myCompany/myProduct

En revanche, si votre nouvelle classe dérive de la classe d’un autre fournisseur, vous devrez peut-être stocker votre classe dans un sous-espace de noms de ce fournisseur. Notez que cela expose votre nouvelle classe à une suppression accidentelle par le fournisseur d’origine.

WMI offre plusieurs façons différentes de créer un espace de noms :

Conception de classes MOF (Managed Object Format)