GetEx, méthode
Certains attributs peuvent stocker une ou plusieurs valeurs. Par exemple, l’attribut otherTelephone d’un objet utilisateur dans Active Directory est une propriété qui peut avoir zéro, une ou plusieurs valeurs. Les attributs qui ont plusieurs valeurs sont appelés « attributs à valeurs multiples ». Si la méthode IADs::Get est utilisée pour récupérer un attribut à valeurs multiples, les résultats doivent être traités différemment que si l’attribut a une valeur unique. Toutefois, les résultats fournis par la méthode IADs::GetEx sont traités de la même manière, que l’attribut ait une ou plusieurs valeurs. Dans les deux cas, la méthode IADs::GetEx retourne les valeurs d’un tableau.
La méthode IADs::GetEx récupère les propriétés du cache de propriétés. Si la propriété spécifiée est introuvable dans le cache, IADs::GetEx effectue un appel IADs::GetInfo implicite.
La méthode IADs::GetEx retourne un tableau de variantes de variantes, quel que soit le nombre de valeurs retournées par le serveur. Cela est vrai même si l’attribut ne contient qu’une seule valeur.
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
La méthode IADs::GetEx peut également être utilisée pour les attributs à valeur unique. Les résultats d’un attribut à valeur unique sont traités de la même façon que les résultats d’un attribut à valeurs multiples.
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
Si aucune valeur n’est définie pour l’attribut, IADs::GetEx retourne l’erreur « Propriété introuvable dans le cache ».