Erstellen von Hierarchien innerhalb von WMI
WMI-Namespace ist ein Programmierobjekt, das den Bereich für eine Reihe 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 Namespace root\cimv2 die im Win32-Schema definierten Klassen und Instanzen 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 bei einem Fehler und Neustart von WMI alle Ihre WMI-Klassendefinitionen für verwaltete Objekte im WMI-Repository wiederhergestellt werden, verwenden Sie die Präprozessoranweisung #pragma autorecover in Ihrer Datei (MOF (Managed Object Format).
WMI definiert einen Namespace als Instanz der Systemklasse __Namespace oder einer beliebigen Klasse, die von __Namespace abgeleitet wird. Die Systemklasse __Namespace verfügt über eine einzelne Eigenschaft namens Name, die innerhalb des Bereichs des übergeordneten Namespace eindeutig sein muss. Die Eigenschaft Name 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. Sie finden es beispielsweise praktisch, einen neuen Namespace unter einem vorhandenen Namespace für einen anderen Anbieter zu schachteln. Der ursprüngliche Anbieter versucht jedoch möglicherweise, 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. Dies kann zwar eine geeignete Aktion für den Zielnamespace sein, aber es kann sich auf nicht verwandte Klasseninstanzen in einem untergeordneten Namespace (d. h. Ihre eigenen Anbieterklassen) auswirken.
Daher wird allgemein empfohlen, ihren Namespace als getrennt von Namespaces zu erstellen und zu registrieren, die Sie nicht direkt steuern. Dies gilt insbesondere, wenn Ihre Klassen nur von allgemeinen CIM-Klassen oder anderen Klassen aus Ihrem Unternehmen abgeleitet werden. Ihr Namespace kann sich unter dem Namespace Root befinden, z. B.:
Root/myCompany/myProduct
Wenn Ihre neue Klasse hingegen von der Klasse eines anderen Anbieters abgeleitet ist, müssen Sie Ihre Klasse möglicherweise in einem Unternamespace dieses Anbieters speichern. Beachten Sie, dass Ihre neue Klasse dadurch dem versehentlichen Löschen durch den ursprünglichen Anbieter zur Verfügung stellt.
WMI bietet verschiedene Möglichkeiten zum Erstellen eines Namespace:
- Erstellen eines untergeordneten Namespaces mit MOF-Code
- Erstellen eines gleichgeordneten Namespaces mit MOF-Code
- Erstellen eines Namespaces mit der WMI-API
Zugehörige Themen