共用方式為


GetEx 方法

某些屬性可以儲存一或多個值。 例如, Active Directory 中用戶物件的其他Telephone 屬性是可以有零、一或多個值的屬性。 具有多個值的屬性稱為「多重值屬性」。 如果使用 IADs::Get 方法來擷取多重值屬性,則必須以不同於屬性具有單一值的方式處理結果。 不過,不論屬性是否具有單一或多個值,IADs::GetEx 方法所提供的結果都會以相同方式處理。 在這兩種情況下, IADs::GetEx 方法會傳回陣列中的值。

IADs::GetEx 方法會從屬性快取擷取屬性。 如果在快取中找不到指定的屬性,IADs::GetEx 會執行隱含的 IADs::GetInfo 呼叫。

不論伺服器傳回的值數目為何,IADs::GetEx 方法都會傳回 Variant 的 Variant 陣列。 即使屬性只包含一個值,也是如此。

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 會傳回錯誤「在快取中找不到屬性」。