ディレクトリサービス関数 (AD DS)

ディレクトリサービス関数は、Windows NTまたはWindows 2000ドメインでドメインコントローラー (DC) を検索するためのユーティリティを提供します。 このアーキテクチャは、Windows NTおよびWindows 2000のすべてのバージョンのクライアントおよびサーバーと対話します。 次の関数を使用すると、開発者はディレクトリサービスでドメインコントローラーとドメインメンバーシップを操作できます。

DCロケーターDsGetDcNameは、Netlogonサービスによって実装されます。 各DCは、WINSなどのトランスポート固有のメカニズムを使用して、DNSサーバーにDNS名とNetBIOS名を登録します。 DCロケーターは名前を検索し、名前を登録したDCにデータグラムを送信またはpingします。 NetBIOSドメイン名の場合、データグラムはメールスロットメッセージです。 DNSドメイン名の場合、データグラムはLDAP UDP検索です。 このような各DCは、現在動作していることを示す応答を返します。 応答する最初のDCが呼び出し元に返されます。

返されたDCはキャッシュされるため、後続の呼び出し元は前のアルゴリズムを繰り返す必要はありません。また、すべての呼び出し元が同じDCを使用することをお勧めします。 これにより、1つのクライアントがDCの内容を一貫して表示できるようになります。

DNSドメイン名でDCを検索する場合、DCロケーターは"最も近い"サイトでDCを検索しようとします。 各DCは、DCが含まれているサイトとDCに含まれるサイトを示す追加のDNSレコードを登録します。 DCロケーターは、サイト固有ではないDNSレコードを検索する前に、まずこのサイト固有のDNSレコードを検索します。そのため、そのサイトのDCが優先されます。 DCロケーターがデータグラムをDCに送信すると、DCはDSの構成/サイト/サブネットコンテナー内のクライアントのIPアドレスを検索して、サブネットオブジェクトを検索します。 サブネットオブジェクトのsiteObjectプロパティは、クライアントを含むサイトの名前を定義します。 DCは、クライアントを含むサイトの名前と、このDCがそのサイトをカバーしているかどうかを示すインジケーターを使用して、pingに応答します。 DCにそのサイトが含まれておらず、DCロケーターがそのサイト内のDCをまだ検索しようとしていない場合、DCロケーターはサイト内のDCを再度検索しようとします。

クライアントを含むサイトの名前を検索するには、DsGetSiteName関数を使用します。 構成/サイト/サブネットコンテナー内のオブジェクトの名前は、有効なサブネット名である必要があります。 DsValidateSubnetName関数は、指定したサブネット名が有効かどうかを示します。