objectGUID を使用してオブジェクトにバインドする
オブジェクトが名前変更または移動されると、オブジェクトの識別名が変更されるため、識別名は信頼性の高いオブジェクト識別子ではありません。 Active Directory Domain Services では、オブジェクトの名前を変更したり移動したりしても、オブジェクトのobjectGUID プロパティは変更されません。 objectGUID と識別子について詳しくは、「オブジェクト名と ID」を参照してください。
Active Directory LDAP プロバイダーは、オブジェクト GUID を使用してオブジェクトにバインドするメソッドを提供します。 バインド文字列形式は次のとおりです。
LDAP://servername/<GUID=XXXXX>
この例では、"servername" はディレクトリ サーバーの名前、"XXXXX" は GUID の 16 進値の文字列表現です。 "servername" は省略可能です。 GUID 文字列は、"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" フォームで指定されます。 GUID文字列は "XXXXXXXX-XXXXXX-XXXXXX-XXXXXXXX " という形式を取ることもできます。これは StringFromGUID2 関数で生成される文字列と同じ形式で、中括弧 "{}" を除いたものです。 GUID からバインド可能な文字列を作成する方法の詳細とコード例については、「GUID のバインド可能な文字列表現を作成するコード例」を参照してください。 IADs.GUID プロパティを使用して、GUID の適切な文字列形式を取得できます。
オブジェクト GUID を使用してバインドする場合、一部の IADs と IADsContainer のメソッドとプロパティはサポートされません。 次の IADs プロパティは、オブジェクト GUID を使用したバインディングによって取得されたオブジェクトではサポートされていません。
次の IADsContainer メソッドは、オブジェクト GUID を使用したバインディングによって取得されたオブジェクトではサポートされていません。
オブジェクト GUID を使用してオブジェクトにバインドした後にこれらのメソッドやプロパティを使用するには、IADs.Get メソッドを使用してオブジェクトの識別名を取得し、その識別名を使用して再度オブジェクトにバインドします。
アプリケーションが、Active Directory Domain Services に格納されているオブジェクトの識別子または参照を格納またはキャッシュする場合、オブジェクト GUID は、いくつかの理由で使用するのに最適な識別子です。
- オブジェクトの objectGUID プロパティは、オブジェクトの名前が変更または移動された場合でも変更されません。
- オブジェクト GUID を使用してオブジェクトにバインドすることは簡単です。
- オブジェクトの名前が変更または移動された場合、 objectGUID プロパティは、そのオブジェクトを識別するすべてのプロパティの条件を持つクエリを作成する必要なく、オブジェクトをすばやく見つけて識別するために使用できる単一の識別子を提供します。