Функции службы каталогов (AD DS)

Функции службы каталогов предоставляют программу для поиска контроллера домена (DC) в домене Windows NT или Windows 2000. Архитектура взаимодействует с клиентами, а также серверами во всех версиях Windows NT и Windows 2000. Следующие функции позволяют разработчикам работать с контроллером домена и членством в домене в службе каталогов:

Указатель контроллера домена dsGetDcName реализуется службой Netlogon. Каждый контроллер домена регистрирует dns-имя на DNS-сервере и его имя NetBIOS с помощью механизма, зависяющего от транспорта, например в WINS. Указатель контроллера домена ищет имя, а затем отправляет диаграмму данных в контроллер домена, в который зарегистрировано имя. Для доменных имен NetBIOS гистограмма представляет собой сообщение mailslot. Для доменных имен DNS диаграмма данных — это поиск по протоколу LDAP UDP. Каждый такой контроллер домена отвечает, указывая на то, что он в настоящее время работает. Первый контроллер домена для ответа возвращается вызывающей объекту.

Возвращенный контроллер домена кэшируется, поэтому последующие вызывающие серверы не должны повторять предыдущий алгоритм и поощрять всех вызывающих пользователей использовать тот же контроллер домена. Это гарантирует, что один клиент имеет согласованное представление содержимого контроллера домена.

При поиске домена по dns-домену указатель контроллера домена пытается найти контроллер домена в ближайшем сайте. Каждый контроллер домена регистрирует дополнительные записи DNS, указывающие, какой сайт находится в контроллере домена и какие сайты включает в себя контроллер домена. Указатель контроллера домена сначала ищет эту запись DNS для конкретного сайта перед поиском записи DNS, которая не относится к сайту, поэтому предпочтительнее контроллер домена на этом сайте. Когда указатель контроллера домена отправляет диаграмму данных в контроллер домена, контроллер домена ищет IP-адрес клиента в контейнере configuration/Sites/Subnet DS, чтобы найти объект подсети. Свойство siteObject объекта подсети определяет имя сайта, содержащего клиент. Контроллер домена отвечает на связь с именем сайта, содержащего клиента, а также индикатором того, охватывает ли этот контроллер домена этот сайт. Если контроллер домена не включает этот сайт, а указатель контроллера домена еще не пытался найти контроллер домена на этом сайте, указатель контроллера домена пытается снова найти контроллер домена на сайте.

Чтобы найти имя сайта, содержащего клиент, используйте функцию DsGetSiteName . Имена объектов в контейнере Configuration/Sites/Subnet должны быть допустимыми именами подсетей. Функция DsValidateSubnetName указывает, является ли указанное имя подсети допустимым.