Erstellen von Hierarchien innerhalb von WMI

Der WMI-Namespace ist ein Programmierobjekt, das den Bereich für einen Satz von Klassen und Instanzen definiert. WMI-Anbieterklassen müssen in einem Namespace definiert werden.

Namespaces beschreiben verschiedene verwaltete Umgebungen, z. B. die SMS-Umgebung. Da die Klassen und Instanzen eines Schemas die Komponenten einer verwalteten Umgebung definieren, erfordert jedes neue Schema einen neuen Namespace. Beispielsweise enthält der \ cimv2-Stammnamespace die Klassen und Instanzen, die im Win32-Schema definiert sind, sowie die übergeordneten cim-Klassen (Common Information Model), von denen das Win32-Schema erbt. CIM-Klassen werden von der Distributed Management Task Force(DMTF)definiert.

Hinweis

Um sicherzustellen, dass alle WMI-Klassendefinitionen für verwaltete Objekte im WMI-Repository wiederhergestellt werden, wenn WMI ausfällt und neu gestartet wird, verwenden Sie die Präprozessoranweisung # pragma autorecover in Ihrer MOF-Datei (Managed Object Format).

WMI definiert einen Namespace als Eine Instanz der _ _ Namespace-Systemklasse oder einer beliebigen Klasse, die von _ _ Namespace abgeleitet ist. Die _ _ Namespace-Systemklasse verfügt über eine einzelne Eigenschaft namens Name, die innerhalb des Bereichs des übergeordneten Namespace eindeutig sein muss. Die Name-Eigenschaft muss auch eine Zeichenfolge enthalten, die mit einem Buchstaben beginnt. Alle anderen Zeichen in der Zeichenfolge können Buchstaben, Ziffern oder Unterstriche sein. Bei allen Zeichen wird die Groß-/Kleinschreibung nicht beachtet.

Zusätzlich zum Bestimmen des eindeutigen Namens für einen untergeordneten Namespace kann der übergeordnete WMI-Namespace die statischen Instanzen Ihrer Klassen vor versehentlichen Änderungen durch andere Anbieter schützen. Beispielsweise kann es praktisch sein, einen neuen Namespace unter einem vorhandenen Namespace für einen anderen Anbieter zu schachteln. Der ursprüngliche Anbieter kann jedoch versuchen, alle Klasseninstanzen so zu aktualisieren, dass sie mit einem neuen Schema übereinstimmen. Dabei kann der ursprüngliche Anbieter alle untergeordneten Elemente in einem Namespace löschen. Obwohl dies eine geeignete Aktion für den Zielnamespace sein kann, kann sie sich auf nicht verknüpfte Klasseninstanzen in einem untergeordneten Namespace (d. h. Ihre eigenen Anbieterklassen) auswirken.

Daher wird im Allgemeinen empfohlen, dass Sie Ihren Namespace als getrennt von Namespaces erstellen und registrieren, die Sie nicht direkt steuern. Dies gilt insbesondere, wenn Ihre Klassen nur von allgemeinen CIM-Klassen oder anderen Klassen ihres Unternehmens abgeleitet werden. Ihr Namespace kann sich unter dem Stammnamespace befinden, z. B.:

Root/myCompany/myProduct

Wenn ihre neue Klasse dagegen von der Klasse eines anderen Anbieters abgeleitet wird, müssen Sie die Klasse möglicherweise in einem Unternamespace dieses Anbieters speichern. Beachten Sie, dass dadurch Ihre neue Klasse für versehentliches Löschen durch den ursprünglichen Anbieter verfügbar gemacht wird.

WMI bietet verschiedene Möglichkeiten zum Erstellen eines Namespace:

Entwerfen von MOF-Klassen (Managed Object Format)