次の方法で共有


スキーマへのバインドのガイドライン

Active Directoryスキーマにバインドするには、次の2つの方法があります。

  • スキーマコンテナーに直接バインドするか、スキーマコンテナー内のclassSchemaオブジェクトまたはattributeSchemaオブジェクトにバインドします。 classSchemaオブジェクトまたはattributeSchemaオブジェクトには、Active Directoryドメインフォレストに存在できるすべてのクラスと属性の完全な正式な定義が含まれています。 詳細については、 「attributeSchemaオブジェクトとclassSchemaオブジェクトの読み取り」 を参照してください。
  • 抽象スキーマ、または抽象スキーマ内のクラスまたは属性エントリにバインドします。 抽象スキーマには、各クラスと属性に関するデータのサブセットのみが含まれていますが、データは簡単に取得して使用できる形式になっています。 詳細については、 「抽象スキーマ」 および 「抽象スキーマの読み取り」 を参照してください。

スキーマを変更または拡張するには、スキーマコンテナーに直接バインドします。 クラスと属性の定義を読み取るには、通常、抽象スキーマから読み取る方が簡単です。

次の理由により、抽象スキーマから読み取る方が簡単です。

  • ADSIには、抽象スキーマを読み取るための特別なバインド手法と一連のインターフェイスが用意されています。
  • 抽象スキーマを操作するADSIインターフェイスは、他のADSIインターフェイスでの使用に適した形式でデータを返します。 たとえば、IADsClassとIADsPropertyは通常、lDAPDisplayName文字列を使用して属性名とクラス名を報告しますが、このデータはオブジェクト識別子 (OID) の形式でディレクトリに格納されます。 lDAPDisplayName形式は、他のADSIインターフェイスが検索フィルターなどでクラスと属性を参照するために使用するため便利です。
  • オブジェクトクラスの抽象スキーマエントリには、複数のclassSchemaオブジェクトから収集されたデータが含まれます。 たとえば、オブジェクトクラスの可能な親、必須属性、および省略可能な属性は、クラスのスーパークラスと補助クラスからのこれらの属性の和集合です。 実際のスキーマコンテナーから読み取る場合は、クラスの派生元であるさまざまなclassSchemaオブジェクトからデータを収集する必要があります。 抽象スキーマから読み取る場合、データは1つの場所にあります。

次の場合は、抽象スキーマを使用するのではなく、スキーマコンテナーに直接バインドする必要があります。

  • 抽象スキーマで公開されていない特定の属性を取得する場合。 たとえば、oMSyntax、attributeSchema、defaultSecurityDescriptorなどの属性は、抽象スキーマでは公開されません。
  • attributeSchemaオブジェクトとclassSchemaオブジェクトを照会する場合。 指定したフィルターに一致するクラスまたは属性を検索するには、スキーマコンテナーにバインドし、1レベルの検索を実行します。
  • 属性またはクラスを追加または変更する場合。 抽象スキーマは読み取り専用です。抽象スキーマを使用してスキーマを変更または拡張することはできません。 変更は、スキーママスターであるドメインコントローラーで行う必要があることに注意してください。 詳細については、 「スキーマ拡張機能をインストールするための前提条件」 を参照してください。