Die GetEx-Methode
Einige Attribute können einen oder mehrere Werte speichern. Beispielsweise ist das otherTelephone-Attribut eines Benutzerobjekts in Active Directory eine Eigenschaft, die null, einen oder viele Werte aufweisen kann. Attribute mit mehreren Werten werden als "mehrwertige Attribute" bezeichnet. Wenn die IADs::Get-Methode zum Abrufen eines mehrwertigen Attributs verwendet wird, müssen die Ergebnisse anders verarbeitet werden, als wenn das Attribut einen einzelnen Wert aufweist. Die von der IADs::GetEx-Methode bereitgestellten Ergebnisse werden jedoch auf die gleiche Weise verarbeitet, unabhängig davon, ob das Attribut einen einzelnen oder mehrere Werte aufweist. In beiden Fällen gibt die IADs::GetEx-Methode die Werte in einem Array zurück.
Die IADs::GetEx-Methode ruft Eigenschaften aus dem Eigenschaftencache ab. Wenn die angegebene Eigenschaft nicht im Cache gefunden wird, führt IADs::GetEx einen impliziten IADs::GetInfo-Aufruf aus.
Die IADs::GetEx-Methode gibt unabhängig von der Anzahl der vom Server zurückgegebenen Werte ein Variantenarray von Varianten zurück. Dies gilt auch dann, wenn das Attribut nur einen Wert enthält.
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
Die IADs::GetEx-Methode kann auch für einwertige Attribute verwendet werden. Die Ergebnisse eines einwertigen Attributs werden mit den Ergebnissen für ein mehrwertiges Attribut verarbeitet.
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
Wenn kein Wert für das Attribut festgelegt ist, gibt IADs::GetEx den Fehler "Eigenschaft nicht im Cache gefunden" zurück.