Fonctions de service d’annuaire (AD DS)
Les fonctions de service d’annuaire fournissent un utilitaire permettant de localiser un contrôleur de domaine (DC) dans un domaine Windows NT ou Windows 2000. L’architecture interagit avec les clients ainsi qu’avec les serveurs dans toutes les versions de Windows NT et Windows 2000. Les fonctions suivantes permettent aux développeurs de travailler avec le contrôleur de domaine et l’appartenance au domaine dans le service d’annuaire :
- DsAddressToSiteNames
- DsAddressToSiteNamesEx
- DsDeregisterDnsHostRecords
- DsEnumerateDomainTrusts
- DsGetDcClose
- DsGetDcName
- DsGetDcNext
- DsGetDcOpen
- DsGetDcSiteCoverage
- DsGetForestTrustInformationW
- DsGetSiteName
- DsMergeForestTrustInformationW
- DsRoleFreeMemory
- DsRoleGetPrimaryDomainInformation
- DsValidateSubnetName
Le localisateur de contrôleur de domaine, DsGetDcName, est implémenté par le service Netlogon. Chaque contrôleur de domaine inscrit son nom DNS sur le serveur DNS et son nom NetBIOS à l’aide d’un mécanisme spécifique au transport, par exemple dans WINS. Le localisateur de contrôleur de domaine recherche le nom, puis envoie un datagramme au contrôleur de domaine qui a inscrit le nom ou effectue un test ping. Pour les noms de domaine NetBIOS, le datagramme est un message maillot. Pour les noms de domaine DNS, le datagramme est une recherche UDP LDAP. Chaque contrôleur de domaine de ce type répond en indiquant qu’il est actuellement opérationnel. Le premier contrôleur de domaine à répondre est retourné à l’appelant.
Le contrôleur de domaine retourné est mis en cache, de sorte que les appelants suivants n’ont pas besoin de répéter l’algorithme précédent et pour encourager tous les appelants à utiliser ce même contrôleur de domaine. Cela garantit qu’un seul client dispose d’une vue cohérente du contenu du contrôleur de domaine.
Lors de la recherche d’un contrôleur de domaine par nom de domaine DNS, le localisateur de contrôleur de domaine tente de trouver un contrôleur de domaine dans le site « le plus proche ». Chaque contrôleur de domaine enregistre des enregistrements DNS supplémentaires indiquant le site dans lequel se trouve le contrôleur de domaine et les sites qu’il inclut. Le localisateur de contrôleur de domaine recherche d’abord cet enregistrement DNS spécifique au site avant de rechercher l’enregistrement DNS qui n’est pas spécifique au site, préférant ainsi un contrôleur de domaine dans ce site. Lorsque le localisateur de contrôleur de domaine envoie un datagramme au contrôleur de domaine, le contrôleur de domaine recherche l’adresse IP du client dans le conteneur Configuration/Sites/Subnet du DS pour rechercher un objet de sous-réseau. La propriété siteObject de l’objet de sous-réseau définit le nom du site qui contient le client. Le contrôleur de domaine répond au ping avec le nom du site qui contient le client, ainsi qu’un indicateur indiquant si ce contrôleur de domaine couvre ce site. Si le contrôleur de domaine n’inclut pas ce site et que le localisateur de contrôleur de domaine n’a pas encore tenté de trouver un contrôleur de domaine dans ce site, il tente à nouveau de trouver un contrôleur de domaine dans le site.
Pour trouver le nom du site contenant le client, utilisez la fonction DsGetSiteName . Les noms des objets dans le conteneur Configuration/Sites/Subnet doivent être des noms de sous-réseau valides. La fonction DsValidateSubnetName indique si un nom de sous-réseau spécifié est valide.