次の方法で共有


アプリケーション ディレクトリ パーティションの作成

アプリケーション・ディレクトリのパーティションは domainDNS オブジェクトに instanceType の属性値です。 DS_INSTANCETYPE_IS_NC_HEAD 併せて DS_INSTANCETYPE_NC_IS_WRITEABLE. これは domainDNS オブジェクトは、アプリケーション・ディレクトリのパーティション・ルート(NCヘッド)を表し、通常のドメイン・パーティションと同じような名前が付けられます。例えば、"DC=dynamicdata,DC=fabrikam,DC=com "となり、"dynamicdata.fabrikam.com "というDNS名に対応します。 したがって、アプリケーションディレクトリパーティションは、ドメインパーティションがインスタンス化できる場所ならどこでもインスタンス化できる。 アプリケーションディレクトリパーティションに関連付けられたNetBIOS名はありません。

アプリケーション・ディレクトリ・パーティションはネストさせることができます。 アプリケーション・ディレクトリー・パーティション・ヘッドをルートとするサブツリー・スコープでの検索は、子アプリケーション・ディレクトリー・パーティションへの継続参照を生成します。

アプリケーションディレクトリパーティションレプリカは、Windows Server 2003以降を実行しているドメインコントローラー上で、Windows Server 2003以降のドメインコントローラーがドメイン名付けFSMOロールを保持している場合にのみ作成できる。 Windows Server 2003ドメインコントローラとダウンレベルドメインコントローラ(Windows 2000ドメインコントローラまたはWindows NT 4.0プライマリドメインコントローラ)の両方を持つ混合フォレストでは、ダウンレベルドメインコントローラ上にアプリケーションディレクトリパーティションレプリカを作成しようとすると失敗します。

アプリケーション・ディレクトリ・パーティションには、対応する crossRef オブジェクトをコンフィギュレーション・パーティションのパーティション・コンテナに追加します。 について crossRef を作成する前に手動で事前に作成することができる。 domainDNS オブジェクト. 事前に作成された crossRef オブジェクトは次の表に示す属性値を持っていなければなりません。 もし crossRef オブジェクトが存在しない場合、Active Directoryサーバーはアプリケーション・ディレクトリ・パーティションの作成時にオブジェクトを作成します。

属性 説明
dnsRoot アプリケーション・ディレクトリ・パーティションが作成されるドメイン・コントローラーのDNSパスが含まれます。
Enabled 内容 .
nCName パーティションの識別名を含む。 上記の例では、この属性は "DC=dynamicdata,DC=mydomain,DC=com "を含む。

 

最初のレプリカを持つ新しいアプリケーション・ディレクトリ・パーティションを作成するには、以下の手順を実行します。

  1. 新しいパーティションのネームスペースにバインドし、アプリケーション・ディレクトリ・パーティションをホストするドメイン・コントローラをADSPathで指定します。 例えば、パーティションを ADsPath of "DC=dynamicdata,DC=mydomain,DC=com", バインディングADSPathは次のようになる。 "LDAP://<ドメインコントローラ>/DC=mydomain,DC=com", where "<ドメインコントローラ>" はパーティションをホストするドメインコントローラーのDNS名です。

    バインドオペレーションでは、fastオプションと delegationオプションを指定しなければならない。 fastオプションを指定すると、名前空間が存在しない場合でもバインドに成功する。 委譲オプションは、ドメインコントローラーが同じ認証情報を使用してドメインネーミングFSMOロールホルダーに連絡できるようにするために必要である。

    ドメインコントローラーのシステムバージョンはWindows Server 2003オペレーティングシステム以降でなければならない。

  2. を作成する。 domainDNS オブジェクトに、パーティションに適切な名前、たとえば "DC=dynamicdata "を付けて、新しいパーティションのネーミングコンテキストヘッドを表します。 The domainDNS オブジェクトは instanceType 属性に 5 (DS_INSTANCETYPE_IS_NC_HEAD | DS_INSTANCETYPE_NC_IS_WRITEABLE). について instanceType 属性はシステム専用の属性なので、作成時にしか設定できません。

そのとき domainDNS オブジェクトが作成されると、Active Directoryサーバーは以下の手順を実行する:

  1. を検索する。 crossRef オブジェクトを持つパーティションコンテナの nCName 属性値がパーティションの識別名にマッチし、マッチした場合は crossRef オブジェクトがアプリケーション・ディレクトリ・パーティションを表します。 もし crossRef オブジェクトが見つからない場合、Active Directoryサーバーは新しい crossRef オブジェクトがアプリケーション・ディレクトリ・パーティションを表します。

    以下の表は crossRef オブジェクト.

    属性 説明
    nCName パーティションの識別名を含む。
    dnsRoot パーティションのDNS名を含む。
    msDS-NC-Replica-所在地 の識別名。 nTDSDSA オブジェクトがこの属性に追加される。

     

  2. コンフィギュレーション・パーティションの同期を開始し、完了を待つ。 これにより、クライアントアプリケーションは、アプリケーションディレクトリパーティションの作成に使用されたのと同じドメインコントローラにバインドされた状態で、新しく作成されたアプリケーションディレクトリパーティションの構成パラメータを変更できるようになる。

  3. を作成する。 domainDNS オブジェクトをDS_INSTANCETYPE_IS_NC_HEAD そして DS_INSTANCETYPE_NC_IS_WRITEABLE のフラグが設定されている。 インスタンスタイプ プロパティ. について インスタンスタイプ プロパティには、他のプライベートなフラグも含めることができる。

  4. を入力する。 ms-DS-Has-Master-NCs 属性の nTDSDSA オブジェクトを、新しく作成されたアプリケーション・ディレクトリ・パーティションの識別名で指定します。

アプリケーションディレクトリパーティションが作成されたとき、またはアプリケーションディレクトリパーティションの新しいレプリカが追加され完全に同期されたとき、Active DirectoryサーバーはNetLogonとDNSにレプリカを正しく登録します。 詳細と登録されているSRVレコードのリストについては、以下を参照のこと。 アプリケーション・ディレクトリ・パーティション・ホストサーバーの場所.

アプリケーション・ディレクトリ・パーティションの作成については、以下を参照してください。 アプリケーション・ディレクトリのパーティションを作成するコード例.

パーティションコンテナの場所

Partitionsコンテナの識別名は、以下の2つの方法で見つけることができる。 最初の方法はより複雑だが、常に正確な結果が得られる:

  1. RootDSEにバインドし、以下の情報を取得する。コンフィギュレーションネーミングコンテキスト 属性.
  2. を使用する。 コンフィギュレーションネーミングコンテキスト 属性を使ってコンフィギュレーション・コンテナにバインドする。
  3. コンフィギュレーション・コンテナの中から crossRefContainer タイプ.
  4. を取得する。 distinguishedName 属性値 crossRefContainer オブジェクト. これはPartitionsコンテナの識別名になる。

詳細と、この方法でパーティション・コンテナを探すコード例については GetPartitionsDNSearch 関数 パーティション・コンテナを探すコード例.

2番目の方法は実装が簡単だが、パーティションコンテナが特定の相対識別名を持つことに依存する。 現在のところ、Partitionsコンテナの名前を変更することはできないが、将来この機能が追加された場合、Partitionsコンテナの名前が変更されていると、以下の手順は正しく機能しない。

  1. RootDSEにバインドし、以下の情報を取得する。コンフィギュレーションネーミングコンテキスト 属性.
  2. 文字列 "CN=Partitions "に続けて、次のように組み合わせる。 configurationNamingContext 属性でパーティションコンテナの識別名を形成する。 識別名は "CN=Partitions、<コンフィギュレーションDN>".

詳細と、この方法でパーティション・コンテナを探すコード例については GetPartitionsDNManual 関数 パーティション・コンテナを探すコード例.