Création d’une partition d’annuaire d’applications
Une partition d’annuaire d’application est représentée par un objet domainDNS avec une valeur d’attribut instanceTypede DS_INSTANCETYPE_IS_NC_HEAD associée à DS_INSTANCETYPE_NC_IS_WRITEABLE. Cet objet domainDNS représente la racine de la partition d’annuaire d’application (tête NC) et est nommé comme une partition de domaine normale, par exemple, « DC=dynamicdata,DC=fabrikam,DC=com », qui correspond à un nom DNS « dynamicdata.fabrikam.com ». Une partition d’annuaire d’application peut donc être instanciée partout où une partition de domaine peut être instanciée. Aucun nom NetBIOS n’est associé à une partition d’annuaire d’application.
Il est possible d’imbriquer des partitions d’annuaire d’application, c’est-à-dire qu’une partition d’annuaire d’application peut avoir des partitions d’annuaire d’application enfants. Les recherches avec une étendue de sous-arborescence enracinée au niveau d’un chef de partition d’annuaire d’application génèrent des références de continuation aux partitions d’annuaire d’applications enfants.
Une partition d’annuaire d’application réplica peut uniquement être créée sur un contrôleur de domaine qui s’exécute sur Windows Server 2003 et versions ultérieures et uniquement lorsque le rôle FSMO Domain-Naming est détenu par un contrôleur de domaine Windows Server 2003 et ultérieur. Dans une forêt mixte qui possède à la fois des contrôleurs de domaine Windows Server 2003 et des contrôleurs de domaine de bas niveau (contrôleurs de domaine Windows 2000 ou contrôleurs de domaine principaux Windows NT 4.0), une tentative de création d’une partition d’annuaire d’application réplica sur un contrôleur de domaine de bas niveau échoue.
Une partition d’annuaire d’application a également un objet crossRef correspondant dans le conteneur Partitions de la partition de configuration. Le crossRef peut être précréé manuellement avant de créer l’objet domainDNS . L’objet crossRef précréé doit avoir les valeurs d’attribut indiquées dans le tableau suivant, sinon la création de la partition échoue. Si l’objet crossRef n’existe pas, le serveur Active Directory en crée un lors de la création de la partition d’annuaire de l’application.
Attribut | Description |
---|---|
dnsRoot | Contient le chemin DNS du contrôleur de domaine sur lequel la partition d’annuaire d’application sera créée. |
activé | Contient FALSE. |
nCName | Contient le nom unique de la partition. Dans l’exemple ci-dessus, cet attribut contient « DC=dynamicdata,DC=mydomain,DC=com ». |
Pour créer une partition d’annuaire d’application avec sa première réplica, procédez comme suit
Liez à l’espace de noms de la nouvelle partition, en spécifiant le contrôleur de domaine qui hébergera la partition d’annuaire de l’application dans ADsPath. Par exemple, pour créer une partition avec un ADsPath de « DC=dynamicdata,DC=mydomain,DC=com », la liaison ADsPath est « LDAP://< domain controller>/DC=mydomain,DC=com », où «< domain controller> » est le nom DNS du contrôleur de domaine qui hébergera la partition.
L’opération de liaison doit spécifier les options rapides et de délégation. L’option rapide permet à la liaison de réussir même si l’espace de noms n’existe pas. L’option de délégation est nécessaire pour permettre au contrôleur de domaine de contacter le Domain-Naming titulaire du rôle FSMO à l’aide des mêmes informations d’identification.
La version système du contrôleur de domaine doit être le système d’exploitation Windows Server 2003 et versions ultérieures.
Créez un objet domainDNS avec un nom approprié pour la partition, par exemple « DC=dynamicdata », afin de représenter l’en-tête du contexte d’affectation de noms pour la nouvelle partition. L’objet domainDNS doit avoir un attribut instanceType avec une valeur de 5 (DS_INSTANCETYPE_IS_NC_HEAD | DS_INSTANCETYPE_NC_IS_WRITEABLE). L’attribut instanceType ne peut être défini qu’au moment de la création, car il s’agit d’un attribut système uniquement.
Lorsque l’objet domainDNS est créé, le serveur Active Directory effectue les étapes suivantes :
Recherche un objet crossRef dans le conteneur Partitions qui a une valeur d’attribut nCName qui correspond au nom unique de la partition et, si une correspondance est trouvée, modifie l’objet crossRef pour représenter la partition du répertoire de l’application. Si aucun objet crossRef correspondant n’est trouvé, le serveur Active Directory crée un objet crossRef pour représenter la partition du répertoire de l’application.
Le tableau suivant répertorie les attributs importants de l’objet crossRef .
Attribut Description nCName Contient le nom unique de la partition. dnsRoot Contient le nom DNS de la partition. msDS-NC-Replica-Locations Le nom unique de l’objet nTDSDSA du contrôleur de domaine pour le premier réplica est ajouté à cet attribut. Lancez une synchronisation de la partition de configuration et attendez la fin. Cela permet à l’application cliente de modifier les paramètres de configuration de la partition d’annuaire d’application nouvellement créée tout en étant liée au même contrôleur de domaine que celui utilisé pour créer la partition d’annuaire d’application.
Créez l’objet domainDNS avec les indicateurs DS_INSTANCETYPE_IS_NC_HEAD et DS_INSTANCETYPE_NC_IS_WRITEABLE définis sur la propriété instanceType . La propriété instanceType peut également contenir d’autres indicateurs privés.
Remplissez l’attribut ms-DS-Has-Master-NCs de l’objet nTDSDSA pour le contrôleur de domaine cible avec le nom unique de la partition d’annuaire d’application nouvellement créée.
Lorsque la partition d’annuaire d’application est créée ou qu’une nouvelle réplica de la partition d’annuaire d’application est ajoutée et entièrement synchronisée, le serveur Active Directory inscrit correctement le réplica auprès de NetLogon et DNS. Pour plus d’informations et une liste des enregistrements SRV inscrits, consultez Localisation d’un serveur hôte de partition d’annuaire d’applications.
Pour plus d’informations sur la création d’une partition d’annuaire d’application, consultez Exemple de code pour la création d’une partition d’annuaire d’applications.
Localisation du conteneur de partitions
Le nom unique du conteneur Partitions peut être trouvé de deux façons. La première est plus compliquée à effectuer, mais fournit toujours un résultat précis :
- Liez à RootDSE et obtenez l’attribut configurationNamingContext .
- Utilisez l’attribut configurationNamingContext pour lier au conteneur de configuration.
- Recherchez dans le conteneur de configuration un objet de type crossRefContainer .
- Obtenez la valeur d’attribut distinguishedName de l’objet crossRefContainer . Il s’agit du nom unique du conteneur Partitions.
Pour plus d’informations et un exemple de code montrant cette méthode pour localiser le conteneur Partitions, consultez la fonction GetPartitionsDNSearch dans Exemple de code pour localiser le conteneur de partitions.
La deuxième méthode est plus facile à implémenter, mais s’appuie sur le conteneur Partitions ayant un nom unique relatif particulier. Il n’est actuellement pas possible de modifier le nom du conteneur Partitions, mais si cette fonctionnalité est ajoutée ultérieurement, la procédure ci-dessous ne fonctionnera pas correctement si le conteneur Partitions a été renommé.
- Liez à RootDSE et obtenez l’attribut configurationNamingContext .
- Combinez la chaîne « CN=Partitions », suivie de l’attribut configurationNamingContext pour former le nom unique du conteneur Partitions. Le nom unique se présente sous la forme « CN=Partitions,DN<> de configuration ».
Pour plus d’informations et un exemple de code montrant cette méthode pour localiser le conteneur Partitions, consultez la fonction GetPartitionsDNManual dans Exemple de code pour la localisation du conteneur de partitions.