Freigeben über


Zuordnen von Active Directory-Klassen

Da Active Directory über eine Vielzahl möglicher Objekte verfügt, kann WMI keine direkte 1:1-Zuordnung erstellen. Stattdessen verwendet der Verzeichnisdiensteanbieter Regeln, um Klassen zwischen den beiden Technologien zuzuordnen.

In diesem Thema werden die folgenden Abschnitte behandelt:

Hinweis

Weitere Informationen zur Unterstützung und Installation dieser Komponente in einem bestimmten Betriebssystem finden Sie unter Betriebssystemverfügbarkeit von WMI-Komponenten.

Zuordnen von Klassen

In der folgenden Liste werden die Richtlinien beschrieben, die der Verzeichnisdiensteanbieter zum Zuordnen von Active Directory-Klassen zu WMI-Klassen verwendet:

  • Jede abstrakte Klasse im Active Directory-Schema wird einer abstrakten Klasse im WMI-Schema zugeordnet.

    Im WMI-Schema wird jeder abstrakten Klasse DS_ vorangestellt. Beispielsweise wird die Klasse person aus dem Active Directory-Schema der DS_person WMI-Klasse zugeordnet.

  • Jede nicht abstrakte Klasse aus dem Active Directory-Schema wird den folgenden beiden Klassen im WMI-Schema zugeordnet:

    • Der ersten zugeordneten Klasse wird ADS_ vorangestellt. Dies sind abstrakte Klassen, die gemäß den folgenden Regeln zugeordnet sind.
    • Die zweite zugeordnete Klasse ist eine nicht abstrakte Klasse mit dem DS_ Namenspräfix. Diese Klasse wird von der abstrakten ADS_-Klasse abgeleitet, wobei der Qualifizierer Provider hinzugefügt wurde.

    Beispielsweise wird die Klasse user aus dem Active Directory-Schema zwei Klassen zugeordnet. Die erste Klasse ist die abstrakte Klasse ADS_user, die gemäß den unten angegebenen Regeln zugeordnet ist. Die zweite Klasse ist die nicht abstrakten Klasse DS_user. Sie wird von ADS_user abgeleitet und verfügt über den hinzugefügten Qualifizierer Provider.

  • Sofern nicht anders angegeben, ist der Name einer zugeordneten Klasse der verwaltete Wert der Eigenschaft LDAP-Display-Name in der Active Directory-Klasse.

  • Wenn die Eigenschaft Sub-Class-Of für die Active Directory-Klasse vorhanden ist, wird die WMI-zugeordnete Klasse von der angegebenen Klasse abgeleitet.

    Wenn die Eigenschaft Sub-Class-Of nicht vorhanden ist, wird die WMI-zugeordnete Klasse von der Klasse DS_LDAP_Root_Class abgeleitet, wie in der MOF-Datei angegeben.

    Hinweis

    Diese Klasse verfügt über die Schlüsseleigenschaft ADSIPath mit einem Typ VT_BSTR. Dies ist der eindeutige ADSI-Pfad, der diese Instanz identifiziert. Active Directory unterstützt nur die einmalige Vererbung, sodass dies funktioniert.

  • Für jede Klasse wird ein Qualifizierer Dynamic vom Typ VT_BOOL erstellt, der WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE | WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS auf TRUE festgelegt ist. Dies ist ein WMI-Standardqualifizierer, der angibt, dass Instanzen dieser Klasse dynamisch bereitgestellt werden.

  • Wenn die Klasse nicht abstrakt ist, erstellt der Anbieter für jede Klasse einen Qualifizierer Provider einen vom Typ VT_BSTR BOOL und legt den Qualifizierertyp WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE | WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS auf "DS Instance Provider". Dies ist ein WMI-Standardqualifizierer, der den Namen des Anbieters angibt, der dynamisch Instanzen dieser Klasse bereitstellt.

Die restlichen ADSI-Eigenschaften sind Klassenqualifizierern und Eigenschaften gemäß den folgenden Tabellen zugeordnet. Alle Qualifizierer werden mit dem Qualifiziererflagwert WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE | WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS zugeordnet.

Im Folgenden werden Zuordnungsinformationen für die Active Directory-Klasse aufgelistet, wobei der WMI-Qualifizierer und der WMI-Qualifizierertyp für jede Active Directory-Eigenschaft angezeigt werden.

Common-Name

CN (VT_BSTR)

Wird direkt aus dem Zeichenfolgenwert zugeordnet.

Default-Object-Category

DefaultObjectCategory (VT_BSTR)

Wird direkt aus dem Zeichenfolgenwert zugeordnet.

Default-Security-Descriptor

DefaultSecurityDescriptor (VT_BSTR)

Wird direkt aus dem Zeichenfolgenwert zugeordnet.

Governs-Id

GovernsId (VT_BSTR)

Zugeordnet aus der Zeichenfolgendarstellung der OID, z. B. „{ 1 3 3 6 }“.

Object-Class

Nicht zugeordnet.

Object-Class-Category

ObjectClassCategory (VT_I4)

Direkt aus dem ganzzahligen Wert zugeordnet. Wenn der Wert Abstract(2) lautet, wird außerdem der Standard-CIM-Qualifizierer VT_BOOL erstellt, der als "Abstract"-Qualifizierer bezeichnet wird.

RDN-ATT-ID

RDNATTID (VT_BSTR)

Zugeordnet aus der Zeichenfolgendarstellung des OID-Werts, z. B. „{ 1 3 3 6 }“. Darüber hinaus wird die hier identifizierte Eigenschaft mit Anmerkungen versehen, wobei der Standard-CIM-Qualifizierer Indexed auf TRUE festgelegt ist.

System-Only

SystemOnly (VT_BOOL)

Wird direkt aus dem booleschen Wert zugeordnet.

Im Folgenden werden die Eigenschaften der Active Directory-Klasse aufgeführt, die WMI-Klasseneigenschaften zugeordnet sind.

May-Contain

Jede Eigenschaft in dieser Liste wird einer WMI-Eigenschaft zugeordnet.

Must-Contain

Jede Eigenschaft in dieser Liste wird einer WMI-Eigenschaft zugeordnet. Der Standard-CIM-Qualifizierer Not_Null wird für jede dieser Eigenschaften erstellt.

System-May-Contain

Jede Eigenschaft in dieser Liste wird einer WMI-Eigenschaft zugeordnet. Darüber hinaus wird jede Eigenschaft mit einem Qualifizierer System kommentiert, der auf TRUE festgelegt ist.

System-Must-Contain

Jede Eigenschaft in dieser Liste wird einer WMI-Eigenschaft zugeordnet. Der Standard-CIM-Qualifizierer Not_Null wird für jede dieser Eigenschaften erstellt. Darüber hinaus wird jede Eigenschaft mit einem Qualifizierer System kommentiert, der auf TRUE festgelegt ist.

Zuordnen von Attributen

Der Verzeichnisdiensteanbieter ordnet jedes Attribut einer Active Directory-Klasse gemäß den Regeln in diesem Abschnitt genau einer Eigenschaft der entsprechenden WMI-Klasse zu. Im Allgemeinen benennt der Verzeichnisdienstanbieter die WMI-Eigenschaft als verwaltete Version des Werts LDAP-Display-Name-Werts des Active Directory-Attributs .

Wenn die Active Directory-Eigenschaft Is-Single-Valued auf FALSE festgelegt ist, wird diese WMI-Eigenschaft mit dem OR-Operator mit CIM_FLAG_ARRAY kombiniert. Beachten Sie, dass jede Eigenschaft mit dem VT_BSTR Qualifizierer ADSyntax gekennzeichnet ist. Sie stellt die zugrunde liegende Active Directory-Syntax dar.

In der folgenden Tabelle ist die Zuordnung der Active Directory-Syntax zum WMI-Eigenschaftsdatentyp aufgeführt.

Active Directory-Element WMI-Datentyp
Access-Point CIM_STRING
Boolean CIM_BOOLEAN
Zeichenfolge, bei der Groß- und Kleinschreibung nicht beachtet werden muss CIM_STRING
Zeichenfolge, bei der Groß- und Kleinschreibung beachtet werden muss CIM_STRING
Definierter Name CIM_STRING
DN-Binary Eingebettetes Objekt der u. a. Klasse DN_With_Binary.
DN-String Eingebettetes Objekt der u. a. Klasse DN_With_String.
Enumeration CIM_SINT32
Enumeration CIM_STRING
Ganze Zahl CIM_SINT32
LargeInteger CIM_STRING
Sicherheitsbeschreibung Eingebettetes Objekt der Klasse Uint8Array, definiert unten.
Numerische Zeichenfolge CIM_STRING
Objekt-ID CIM_STRING
Oktettzeichenfolge Eingebettetes Objekt der Klasse Uint8Array, definiert unten.
OR-Name CIM_STRING
Presentation-Address Eingebettetes Objekt der Klasse Uint8Array, definiert unten.
Großbuchstaben CIM_STRING
Replikatsverknüpfung Eingebettetes Objekt der Klasse Uint8Array, definiert unten.
String(Sid) Eingebettetes Objekt der Klasse Uint8Array, definiert unten.
Time CIM_DATETIME
UTC-codierte Zeit CIM_DATETIME
Unicode-Zeichenfolge CIM_STRING

Die Oktettzeichenfolgensyntax, die sich auf ein Array von uint8-Werten bezieht, stellt bei der Zuordnung zu WMI ein Problem dar, da WMI Eigenschaften der Typen uint8 und Arrays von uint8 zulässt, während Active Directory Eigenschaften vom Typ Octet String sowie Arrays von Octet String zulässt.

Das folgende Beispiel zeigt die Klasse Directory Services Provider, die zum Zuordnen eines Arrays von Eigenschaften vom Typ Octet String verwendet wird.

Class Uint8Array 
{
    uint8 values[];
    uint32 numberOfValues;
};

WMI ordnet alle Octet String Active Directory-Eigenschaftswerte eingebetteten Instanzen von Uint8Array zu. Auf ähnliche Weise ordnet WMI Arrays von Oktettzeichenfolgen-Arrays eingebetteter Uint8Array-Objekte zu.

Das folgende Beispiel zeigt die Klassen, die von WMI DN-Binary und DN-String DS-Eigenschaftswerte zugeordnet werden.

Class DN_With_String
{
    string dnString;
    string value;
};

Class DN_With_Binary
{
    string dnString;
    uint8 value[];
};

In der folgenden Tabelle wird aufgeführt, wie WMI die restlichen Eigenschaften der Active Directory-Attributschnittstelle zu WMI-Eigenschaftsqualifizierern zuordnet.

Name der Active Directory-Attributeigenschaft WMI-Qualifizierer Datentyp Zuordnungsinformationen
Attribute-Syntax AttributeSyntax VT_BSTR Zugeordnet aus der Zeichenfolgendarstellung der OID.
Common-Name CN VT_BSTR Zugeordnet aus dem Zeichenfolgenwert.
System-Only System VT_BOOL Zugeordnet aus dem booleschen Wert.

Hinweis

WMI ordnet alle Active Directory-Qualifizierer den WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE | WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS Qualifizierertypen zu.

Assoziationsklassen

Der Verzeichnisdienst ist im Wesentlichen ein hierarchischer Objektspeicher. Die Objekte, die auf einer inneren Ebene in der Hierarchie angezeigt werden können, werden als "Container" bezeichnet. Die Struktur dieser Hierarchie wird weiter durch die Eigenschaften "Poss-Superiors" und "System-Poss-Superiors" einer Klasse im Schema gesteuert. Diese zusammen geben den Satz von Klassen an, deren Instanzen in einer Instanz einer Containerklasse enthalten sein können.

Im folgenden Beispiel wird eine CIM-Zuordnung als Instanzen der statischen Zuordnungsklasse DS_LDAP_Class_Containment modelliert.

//  DS Class Associations Provider 

// Create a class of which instances are
// provided by this provider

[
  Association : ToInstance,
  dynamic,
  HasClassRefs,
  Provider("Microsoft|DSLDAPClassAssociationProvider|V1.0")
]
class DS_LDAP_Class_Containment
{
    [key, classref{"DS_LDAP_Root_Class"} : ToInstance ToSubClass]
    object Ref ChildClass;

    [key, classref{"DS_LDAP_Root_Class"} : ToInstance ToSubClass] 
    object Ref ParentClass; // The parent DS Class
};


// Create an instance of the provider class for registration
instance of __Win32Provider as $AssociationsProvider
{
    Name = "Microsoft|DSLDAPClassAssociationProvider|V1.0";
    Clsid = "{33831ED4-42B8-11d2-93AD-00805F853771}";
    ImpersonationLevel = 1;
};    

// Specification of the instances and operation
// provided by the provider
instance of __InstanceProviderRegistration
{
    Provider = $AssociationsProvider;
    SupportsGet = TRUE;
    SupportsPut = FALSE;
    SupportsDelete = FALSE;
    SupportsEnumeration = TRUE;
};

Der Zuordnungsklassenanbieter unterstützt die Methoden GetObjectAsync und CreateClassEnumAsync.