Mappage de classes Active Directory
Étant donné qu’Active Directory possède un large éventail d’objets possibles, WMI ne peut pas créer un mappage un-à-un direct. Au lieu de cela, le fournisseur de services d’annuaire utilise des règles pour mapper des classes entre les deux technologies.
Les sections suivantes sont abordées dans cette rubrique :
Notes
Pour plus d’informations sur la prise en charge et l’installation de ce composant sur un système d’exploitation spécifique, consultez Disponibilité du système d’exploitation des composants WMI.
Mappage de classes
La liste suivante décrit les recommandations que le fournisseur de services d’annuaire utilise pour mapper des classes Active Directory à des classes WMI :
Chaque classe abstraite dans le schéma Active Directory est mappée à une classe abstraite dans le schéma WMI.
Dans le schéma WMI, chaque classe abstraite a le préfixe DS_. Par exemple, la classe person du schéma Active Directory est mappée à la classe WMI DS_person.
Chaque classe non abstraite du schéma Active Directory est mappée aux deux classes suivantes dans le schéma WMI :
- La première classe mappée a le préfixe ADS_. Il s’agit de classes abstraites, mappées selon les règles ci-dessous.
- La deuxième classe mappée est une classe non abstraite dont le nom a le préfixe DS_. Cette classe est dérivée de la classe abstraite ADS_, avec l’ajout du qualificateur Provider.
Par exemple, la classe user du schéma Active Directory est mappée à deux classes. La première classe est la classe abstraite ADS_user, mappée selon les règles ci-dessous. La deuxième classe est la classe non abstraite DS_user. Elle est dérivée de ADS_user à laquelle est ajouté le qualificateur Provider.
Sauf indication contraire, le nom d’une classe mappée est la valeur altérée de la propriété LDAP-Display-Name dans la classe Active Directory.
Si la propriété Sub-Class-Of est présente sur la classe Active Directory, la classe mappée à WMI est dérivée de la classe spécifiée.
Si la propriété Sub-Class-Of n’est pas présente, la classe mappée à WMI est dérivée de la classe DS_LDAP_Root_Class, comme spécifié dans le fichier MOF.
Notes
Cette classe a la propriété de clé ADSIPath, avec un type VT_BSTR. Il s’agit du chemin ADSI unique qui identifie cette instance. Active Directory prend uniquement en charge l’héritage simple. De ce fait, cela fonctionne.
Un qualificateur Dynamic de type VT_BOOL et dont la variante
WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE | WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS
définie sur TRUE est créée pour chaque classe. Il s’agit d’un qualificateur WMI standard qui indique que les instances de cette classe sont fournies dynamiquement.Si la classe n’est pas abstraite, le fournisseur crée un qualificateur Provider de type VT_BSTR BOOL et la variante de qualificateur
WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE | WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS
définie sur « Fournisseur d’instance fournisseur d’instance du Service d’annuaire » pour chaque classe. Il s’agit d’un qualificateur WMI standard qui indique le nom du fournisseur fournissant des instances de cette classe de façon dynamique.
Le reste des propriétés ADSI sont mappées aux qualificateurs et propriétés de classe conformément aux tableaux suivants. Tous les qualificateurs sont mappés avec la valeur d’indicateur de qualificateur WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE | WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS
.
La liste suivante répertorie les informations de mappage pour la classe Active Directory, montrant le type de qualificateur WMI et de qualificateur WMI pour chaque propriété Active Directory.
-
Common-Name
-
CN (VT_BSTR)
Mappé directement à partir de la valeur de chaîne.
-
Default-Object-Category
-
DefaultObjectCategory (VT_BSTR)
Mappé directement à partir de la valeur de chaîne.
-
Default-Security-Descriptor
-
DefaultSecurityDescriptor (VT_BSTR)
Mappé directement à partir de la valeur de chaîne.
-
Governs-Id
-
GovernsId (VT_BSTR)
Mappé à partir de la représentation sous forme de chaîne de l’OID ; par exemple, « { 1 3 3 6 } ».
-
Object-Class
-
N/A
Non mappé.
-
Object-Class-Category
-
ObjectClassCategory (VT_I4)
Mappé directement à partir de la valeur de type entier. En outre, si la valeur est Abstract(2), le qualificateur CIM VT_BOOL standard, appelé « Abstract », est également créé.
-
RDN-ATT-ID
-
RDNATTID (VT_BSTR)
Mappé à partir de la représentation sous forme de chaîne de la valeur OID ; par exemple, « { 1 3 3 6 } ». En outre, la propriété identifiée ici est annotée avec le qualificateur CIM Indexed standard défini sur TRUE.
-
System-Only
-
SystemOnly (VT_BOOL)
Mappé directement à partir de la valeur booléenne.
La liste suivante répertorie les propriétés de classe Active Directory mappées à des propriétés de classe WMI.
-
May-Contain
-
Chaque propriété de cette liste est mappée à une propriété WMI.
-
Must-Contain
-
Chaque propriété de cette liste est mappée à une propriété WMI. Le qualificateur CIM Not_Null standard est créé pour chacune d’elles.
-
System-May-Contain
-
Chaque propriété de cette liste est mappée à une propriété WMI. En outre, chaque propriété est annotée avec un qualificateur System défini sur TRUE.
-
System-Must-Contain
-
Chaque propriété de cette liste est mappée à une propriété WMI. Le qualificateur CIM Not_Null standard est créé pour chacune d’elles. En outre, chaque propriété est annotée avec un qualificateur System défini sur TRUE.
Mappage d’attributs
Le fournisseur de services d’annuaire mappe chaque attribut d’une classe Active Directory à exactement une propriété de la classe WMI correspondante conformément aux règles de cette section. En général, le fournisseur de services d’annuaire nomme la propriété WMI comme la version altérée de la valeur LDAP-Display-Name de l’attribut Active Directory.
Si la propriété Active Directory Is-Single-Valued a la valeur FALSE, cette propriété WMI est associée à l’opérateur OR avec CIM_FLAG_ARRAY. Notez que chaque propriété est étiquetée avec le qualificateur VT_BSTR, ADSyntax. Cela représente la syntaxe Active Directory sous-jacente.
Le tableau suivant liste le mappage de la syntaxe Active Directory au type de données de propriété WMI.
Élément Active Directory | Type de données WMI |
---|---|
Access-Point | CIM_STRING |
Boolean | CIM_BOOLEAN |
Chaîne ne respectant pas la casse | CIM_STRING |
Chaîne respectant la casse | CIM_STRING |
Nom unique | CIM_STRING |
DN-Binary | Objet incorporé de la classe DN_With_Binary définie ci-dessous. |
DN-String | Objet incorporé de la classe DN_With_String définie ci-dessous. |
Énumération | CIM_SINT32 |
Énumération | CIM_STRING |
Integer | CIM_SINT32 |
LargeInteger | CIM_STRING |
Descripteur de sécurité | Objet incorporé de la classe Uint8Array définie ci-dessous. |
Chaîne numérique | CIM_STRING |
ID objet | CIM_STRING |
Chaîne d’octets | Objet incorporé de la classe Uint8Array définie ci-dessous. |
Nom OR | CIM_STRING |
Presentation-Address | Objet incorporé de la classe Uint8Array définie ci-dessous. |
Chaîne utilisant une casse d’impression | CIM_STRING |
Liaison de réplica | Objet incorporé de la classe Uint8Array définie ci-dessous. |
String(Sid) | Objet incorporé de la classe Uint8Array définie ci-dessous. |
Temps | CIM_DATETIME |
Heure codée UTC | CIM_DATETIME |
Chaîne Unicode | CIM_STRING |
La syntaxe d’une chaîne d’octets, qui fait référence à un tableau de valeurs uint8, présente un problème lorsqu’elle est mappée à WMI, car WMI autorise les propriétés des types uint8 et les tableaux de valeurs uint8, tandis qu’Active Directory autorise les propriétés de type Chaîne d’octets ainsi que les tableaux de chaînes d’octets.
L’exemple suivant montre la classe Fournisseur de services d’annuaire qui est utilisée pour mapper un tableau de propriétés de type Chaîne d’octets.
Class Uint8Array
{
uint8 values[];
uint32 numberOfValues;
};
WMI mappe toutes les valeurs de propriété Active Directory de type Chaîne d’octets à des instances incorporées d’Uint8Array. De même, WMI mappe des tableaux de chaînes d’octets à des tableaux d’objets Uint8Array incorporés.
L’exemple suivant montre les classes qui sont mappées par WMI à des valeurs de propriété du Service d’annuaire (DS) DN-Binary et DN-String.
Class DN_With_String
{
string dnString;
string value;
};
Class DN_With_Binary
{
string dnString;
uint8 value[];
};
Le tableau suivant indique comment WMI mappe le reste des propriétés de l’interface d’attribut Active Directory à des qualificateurs de propriétés WMI.
Nom de propriété d’attribut Active Directory | Qualificateur WMI | Type de données | Informations de mappage |
---|---|---|---|
Attribute-Syntax | AttributeSyntax | VT_BSTR | Mappé à partir de la représentation sous forme de chaîne de l’OID. |
Common-Name | CN | VT_BSTR | Mappé à partir de la valeur de chaîne. |
System-Only | Système | VT_BOOL | Mappé à partir de la valeur booléenne. |
Notes
WMI mappe tous les qualificateurs Active Directory avec les variantes de qualificateur WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE | WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS
.
Classes d’association
Le Service d’annuaire est essentiellement un magasin hiérarchique d’objets. Ces objets qui peuvent apparaître à un niveau non-feuille de la hiérarchie sont appelés « conteneurs ». La structure de cette hiérarchie est contrôlée par les propriétés « Poss-Superiors » et « System-Poss-Superiors » d’une classe dans le schéma. Ces éléments, pris ensemble, spécifient l’ensemble de classes dont les instances peuvent être contenues dans une instance d’une classe de conteneur.
L’exemple suivant modélise une association CIM en tant qu’instances de la classe d’association statique DS_LDAP_Class_Containment.
// 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;
};
Le fournisseur de classes d’association prend en charge les méthodes GetObjectAsync et CreateClassEnumAsync.