次の方法で共有


GetEx メソッド

一部の属性には、1 つ以上の値を格納できます。 たとえば、Active Directory のユーザー オブジェクトの otherTelephone 属性は、0、1、または複数の値を持つことができるプロパティです。 複数の値を持つ属性は、「複数値属性」と呼ばれます。 IADs::Get メソッドを使用して複数値属性を取得する場合は、属性に単一の値がある場合とは異なる方法で結果を処理する必要があります。 ただし、IADs::GetEx メソッドによって提供される結果は、属性に単一または複数の値があるかどうかに関係なく、同じ方法で処理されます。 どちらの場合も、 IADs::GetEx メソッドは配列内の値を返します。

IADs::GetEx メソッドは、プロパティ キャッシュからプロパティを取得します。 指定したプロパティがキャッシュに見つからない場合、IADs::GetEx は暗黙的な IADs::GetInfo 呼び出しを実行します。

IADs::GetEx メソッドは、サーバーから返される値の数に関係なく、バリアントのバリアント配列を返します。 これは、属性に 1 つの値のみが含まれている場合でも当てはまります。

Dim usr As IADs
On Error GoTo Cleanup

Set usr = GetObject("LDAP://CN=Jeff Smith,CN=Users,DC=fabrikam,DC=com")
homePhones = usr.GetEx("otherHomePhone")
For each phone in homePhones
    Debug.Print phone
Next

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

IADs::GetEx メソッドは、単一値属性にも使用できます。 単一値属性の結果は、複数値属性の結果と同じように処理されます。

Dim usr as IADs
On Error GoTo Cleanup

Set usr = GetObject("LDAP://CN=Jeff Smith,CN=Users,DC=fabrikam,DC=com")
sds = usr.GetEx("ntSecurityDescriptor")
For each sd in sds
    Set acl = sd.DiscretionaryACL
Next

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

属性に値が設定されていない場合、IADs::GetEx は "プロパティがキャッシュに見つかりません" というエラーを返します。