Freigeben über


Hinzufügen einer WMI-Eigenschaft

Eigenschaften in WMI-Klassen beschreiben Daten zu einem verwalteten Objekt. Beispielsweise werden Handle, ProcessId und PageFaults als Eigenschaften der Win32_Process-Klasse definiert und beschreiben Aspekte eines Betriebssystemprozesses. Weitere Informationen finden Sie unter Schreiben eines Eigenschaftenanbieters.

Definieren einer Eigenschaft in MOF

Eine WMI-Eigenschaft stellt einen Aspekt oder Zustand in dem Objekt dar. Anstatt Methoden zu erstellen, die einfach einen Wert abrufen und festlegen, können Sie eine Eigenschaft erstellen. Die NetEnabled-Eigenschaft von Win32_NetworkAdapter zeigt beispielsweise an, ob der Status des Adapters aktiviert oder deaktiviert ist. Die Methoden Enable und Disable führen jedoch die Aktion aus, bei der der Adapterstatus geändert wird.

Eine Eigenschaft muss über einen Datentyp verfügen. Der Datentyp der Win32_Process-Eigenschaft Handle ist string und der Datentyp von PageFaults ist uint32. Wenn eine Eigenschaft nur zwei Zustände aufweisen kann, wird der Datentyp der Eigenschaft normalerweise auf Boolean festgelegt.

Die Eigenschaft kann auch ein Array sein. Beispielsweise ist die Eigenschaft Sicherheitsbezeichner (SID) von Win32_Trustee ein Bytearray (uint8), das die SID enthält. Eigenschaften können eingebettete Objekte enthalten, die Verweise auf eine oder mehrere Instanzen einer anderen WMI-Klasse sind. Die Eigenschaften der ermessensbasierten Zugriffssteuerungsliste (Access Control List, DACL) und der Systemzugriffssteuerungsliste (SACL) von Win32_SecurityDescriptor sind beispielsweise Arrays von Win32_ACE-Objekten, die die Gruppen und Konten beschreiben, die Zugriff haben. Die Group-Eigenschaft in Win32_SecurityDescriptor enthält einen Verweis auf eine einzelne Instanz von Win32_Trustee. Weitere Informationen finden Sie unter Einbetten von Objekten in eine Klasse.

Eine Eigenschaft kann mehrere Qualifizierer haben. Diese Qualifizierer können CIM-(Common Information Model-) oder WMI-Qualifizierer oder spezifisch für bestimmte Klassentypen sein, wie z. B. die Qualifizierer für die Leistungsindikator-Klasse. Qualifizierer geben einige Aspekte der Eigenschaft an, z. B. wenn sie schreibgeschützt ist oder wenn sie ohne eine bestimmte Berechtigung nicht geändert werden kann. Eine Anwendung, die versucht, in die Win32_SecurityDescriptorDACL-Eigenschaft zu schreiben, erfordert beispielsweise die Berechtigungen SeSecurityPrivilege und SeRestorePrivilege. Weitere Informationen finden Sie unter Hinzufügen eines Qualifizierers.

Schließlich muss eine Eigenschaft einen Namen haben. Sie können eine Eigenschaft innerhalb der Grenzen der Standardprogrammierpraxis benennen. Es gibt jedoch zwei Hauptausnahmen. Erstens dürfen Sie kein MOF-Schlüsselwort, wie z. B. „class“, als Eigenschaftennamen verwenden. Zweitens dürfen Sie auch keine WQL-Schlüsselwörter wie z. B. "group" als Eigenschaftennamen verwenden. Weitere Informationen zu MOF- und WQL-Schlüsselwörtern finden Sie unter MOF-Datentypen und WQL (SQL for WMI).

Bei C++- und MOF-(Managed Object Format-)Code deklarieren Sie die Eigenschaften einer Klasse zur gleichen Zeit, wie Sie die Klasse deklarieren.

So definieren Sie eine Eigenschaft

  • Schließen Sie den Eigenschaftendatentyp, den Namen und einen optionalen Standardwert und -qualifizierer zwischen die geschweiften Klammern der Klassenbeschreibung ein.

    class MyClass 
    {
        [key] string   strProp;
        sint32         dwProp1 = 21;
        uint32         dwProp2;
    };
    

    Die MyClass-Klasse im vorherigen Beispiel verfügt über drei Eigenschaften: eine Zeichenfolge, eine 32-Bit-Ganzzahl mit Vorzeichen und eine 32-Bit-Ganzzahl ohne Vorzeichen. Jeder Eigenschaft wird ein Name ohne Beachtung der Groß-/Kleinschreibung und ein MOF-Datentyp zugewiesen.

    Der Schlüsselqualifizierer definiert die Zeichenfolgeneigenschaft als Schlüsseleigenschaft, die eine Instanz der Klasse eindeutig identifiziert. Weitere Informationen zu Qualifizierern finden Sie unter Hinzufügen eines Qualifizierers.

Erstellen einer Klasse