次の方法で共有


フォレストでアプリケーション ディレクトリ パーティションを列挙する

ドメイン パーティションと同様、すべてのアプリケーション ディレクトリ パーティションが、構成パーティションのパーティション コンテナー内の crossRef オブジェクトによって表されます。 各 crossRef オブジェクトには、対応するパーティションに関するデータが格納されます。

ドメイン パーティションを表す crossRef オブジェクトは、systemFlags 属性のコンテンツによって、アプリケーション ディレクトリ パーティションを表す crossRef オブジェクトとは区別されます。 ドメイン パーティションを表す crossRef オブジェクトの場合、systemFlags 属性に ADS_SYSTEMFLAG_CR_NTDS_NC フラグと ADS_SYSTEMFLAG_CR_NTDS_DOMAIN フラグの両方が設定されます。 アプリケーション ディレクトリ パーティションを表す crossRef オブジェクトの場合、systemFlags 属性には ADS_SYSTEMFLAG_CR_NTDS_NC フラグが設定され、ADS_SYSTEMFLAG_CR_NTDS_DOMAIN フラグは設定されません。

スキーマおよび構成パーティションを表す crossRef オブジェクトの場合も、systemFlags 属性に ADS_SYSTEMFLAG_CR_NTDS_NC フラグが設定され、ADS_SYSTEMFLAG_CR_NTDS_DOMAIN フラグは設定されません。 このため、これら 2 つの crossRef オブジェクトを nCName 属性のコンテンツによって区別する必要があります。 スキーマ コンテナーを表す crossRef オブジェクトの nCName 属性は、RootDSE オブジェクトの schemaNamingContext 属性と同じになります。 同様に、構成コンテナーを表す crossRef オブジェクトの nCName 属性は、RootDSE オブジェクトの configurationNamingContext 属性と同じになります。

フォレスト内のすべてのアプリケーション ディレクトリ パーティションを識別するには、次の手順を実行します

  1. 構成パーティションのパーティション コンテナーで、すべての crossRef オブジェクトを検索または列挙します。
  2. crossRef オブジェクトで systemFlags 属性値に ADS_SYSTEMFLAG_CR_NTDS_NC フラグが設定されていない場合、または ADS_SYSTEMFLAG_CR_NTDS_DOMAIN フラグが設定されている場合は、結果セットからそのオブジェクトを除外します。
  3. 結果セットからスキーマ パーティションを除外するには、crossRef オブジェクトの nCName 属性を RootDSE オブジェクトの schemaNamingContext 属性と比較します。
  4. 結果セットから構成パーティションを除外するには、crossRef オブジェクトの nCName 属性を RootDSE オブジェクトの configurationNamingContext 属性と比較します。
  5. 結果セット内の残りの crossRef オブジェクトはすべて、アプリケーション ディレクトリ パーティションを表します。