次の方法で共有


IADs プロパティ メソッド

IADs インターフェイスのプロパティ メソッドは、次の表で説明するプロパティを取得または設定します。 プロパティ メソッドの詳細については、「インターフェイス プロパティ メソッド」を参照してください

プロパティ

Adspath

このオブジェクトの ADsPath 文字列。 この文字列は、ネットワーク環境でこのオブジェクトを一意に識別します。 オブジェクトは、常にこのパスを使用して取得できます。

アクセスの種類: 読み取り専用

スクリプト データ型: BSTR

// C++ method syntax
HRESULT get_ADsPath(
  [out] BSTR* pbstrADsPath
);

クラス

オブジェクト Schema クラスの名前。

アクセスの種類: 読み取り専用

スクリプト データ型: BSTR

// C++ method syntax
HRESULT get_Class(
  [out] BSTR* pbstrClass
);

GUID

ディレクトリ オブジェクトのグローバル一意識別子。 IADs インターフェイスは、ディレクトリ サーバーに格納されているオクテット文字列から GUID を文字列形式に変換します。

アクセスの種類: 読み取り専用

スクリプト データ型: BSTR

// C++ method syntax
HRESULT get_GUID(
  [out] BSTR* pbstrGUID
);

名前

基になるディレクトリ サービス内で名前が付けられたオブジェクトの相対名。 この名前は、このオブジェクトとその兄弟を区別します。

アクセスの種類: 読み取り専用

スクリプト データ型: BSTR

// C++ method syntax
HRESULT get_Name(
  [out] BSTR* pbstrName
);

Parent

親コンテナーの ADsPath 文字列。 Active Directory では、Parent プロパティと Name プロパティを連結して、特定のオブジェクトの ADsPath を作成することはできません。 この操作は一部のプロバイダーで動作する場合があります。すべての実装で動作するとは限りません。 ADsPath は有効であることが保証されており、オブジェクトのインターフェイス ポインターを取得するために常に使用する必要があります。

アクセスの種類: 読み取り専用

スクリプト データ型: BSTR

// C++ method syntax
HRESULT get_Parent(
  [out] BSTR* pbstrParent
);

[スキーマ]

このオブジェクトの Schema クラス オブジェクトの ADsPath 文字列。

アクセスの種類: 読み取り専用

スクリプト データ型: BSTR

// C++ method syntax
HRESULT get_Schema(
  [out] BSTR* pbstrSchema
);

解説

Active Directory では、 GUID から返される GUID は 16 進数の文字列です。 結果 の GUID を 使用して、オブジェクトに直接バインドします。

Dim x As IADs
Set x = GetObject("LDAP://servername/<GUID=xxx>")

xxx は GUID プロパティから返される値です。 詳細については、「objectGUID を使用してオブジェクトにバインドする」を参照してください。 GUID を使用してオブジェクトにバインドする場合、ADsPath プロパティ メソッドは、識別名 (DN) を使用して同じオブジェクトにバインドした場合に返される通常の値とは異なる値を返します。 たとえば、次の表に、2 つの異なるバインド メソッドを使用して同じユーザー オブジェクトにバインドするときに返される値を示します。

DN を使用してバインドする GUID を使用してバインドする
名前 CN=Jeff Smith CN=Jeff Smith
Parent LDAP://server/CN=Users,DC=Fabrikam,DC=com LDAP://server/CN=Users,DC=Fabrikam,DC=com
Adspath LDAP://server/CN=Jeff Smith,CN=Users,DC=Fabrikam,DC=com <LDAP://server/ GUID=c0f59dfcf507d311a99e0000f879f7c7>

Note

WinNT プロバイダーは、オブジェクト GUID を使用したバインドをサポートせず、GUID プロパティを少し異なる文字列形式で返します。

次のコード例は、IADs インターフェイスのプロパティ メソッドを使用してオブジェクト データを取得する方法を示しています。

Dim x As IADs
Dim parent As IADsContainer
Dim cls As IADsClass
Dim op As Variant

On Error GoTo Cleanup

Set x = GetObject("WinNT://Fabrikam/Administrator")
Debug.Print "Object Name: " & x.Name
Debug.Print "Object Path: " & x.ADsPath
Debug.Print "Object Class: " & x.Class
 
' Get more data about the object schema.
Set cls = GetObject(x.Schema)
Debug.Print "Class Name is: " & cls.Name
For Each op In cls.OptionalProperties
    Debug.Print "Optional Property: " & op
Next op

Cleanup:
    If (Err.Number<>0) Then
        MsgBox("An error has occurred. " & Err.Number)
    End If
    Set x = Nothing
    Set parent = Nothing
    Set cls = Nothing

次のコード例は、IADs インターフェイスのプロパティ メソッドを使用してオブジェクト データを取得する方法を示しています。

<HTML>
<head><title></title></head>

<body>
<%
Dim x 
On Error Resume Next
 
Set x = GetObject("WinNT://Fabrikam/Administrator")
Response.Write "Object Name: " & x.Name & "<br>"
Response.Write "Object Path: " & x.ADsPath & "<br>"
Response.Write "Object Class: " & x.Class & "<br>"
 
' Get more data about the object schema.
Set cls = GetObject(x.Schema)
Response.Write "Class Name is: " & cls.Name & "<br>"
For Each op In cls.OptionalProperties
    Response.Write "Optional Property: " & op & "<br>"
Next op
%>

</body>
</html>

次のコード例は、IADs インターフェイスのプロパティ メソッドを操作する方法を示しています。

#include <stdio.h>
#include <activeds.h>
 
int main(int argc, char* argv[])
{
    IADs *pADs = NULL;
    IADsUser *pADsUser = NULL;
    IADsClass *pCls = NULL;
    CComBSTR sbstr;
 
    HRESULT hr = CoInitialize(NULL);
    if (hr != S_OK) { return 0; }
 
    hr=ADsGetObject(L"WinNT://Fabrikam/Administrator",
                IID_IADsUser,
                (void**) &pADsUser);
    if (hr != S_OK) { goto Cleanup; }
 
    hr = pADsUser->QueryInterface(IID_IADs, (void**) &pADs);
    if( hr !=S_OK) { goto Cleanup;}
 
    pADsUser->Release();
 
    if( S_OK == pADs->get_Name(&sbstr) ) {
        printf("Object Name: %S\n",sbstr);
    }
 
    if( S_OK == pADs->get_ADsPath(&sbstr) ) {
        printf("Object path: %S\n",sbstr);
    }
 
    if( S_OK == pADs->get_Class(&sbstr) ) {
        printf("Object class: %S\n",sbstr);
    }
 
    hr = pADs->get_Schema(&sbstr);
    if ( hr != S_OK) {goto Cleanup;}
 
    hr = ADsGetObject(sbstr,IID_IADsClass, (void**)&pCls);
    if ( hr != S_OK) {goto Cleanup;}
    if( S_OK == pCls->get_Name(&sbstr) ) {
        printf("Class name is %S\n", sbstr);
    }
 
 Cleanup:
    if(pADs)
        pADs->Release();

    if(pIADsUser)
        pADsUser->Release();

    if(IADsClass)
        pADsClass->Release();

    CoUninitialize();

    if(hr==S_OK)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}

要件

要件 Value
サポートされている最小のクライアント
Windows Vista
サポートされている最小のサーバー
Windows Server 2008
ヘッダー
Iads.h
[DLL]
Activeds.dll
IID
IID_IADsは、FD8256D0-FD15-11CE-ABC4-02608C9E7553 として定義されます

関連項目

Iad

IADsContainer