Compartir a través de


El método GetEx

Algunos atributos pueden almacenar uno o varios valores. Por ejemplo, el atributo otherTelephone de un objeto de usuario en Active Directory es una propiedad que puede tener cero, uno o varios valores. Los atributos que tienen varios valores se conocen como "atributos multivalor". Si el método IADs::Get se usa para recuperar un atributo multivalor, los resultados se deben procesar de forma diferente a si el atributo tiene un único valor. Los resultados proporcionados por el método IADs::GetEx , sin embargo, se procesan de la misma manera, independientemente de si el atributo tiene un único o varios valores. En ambos casos, el método IADs::GetEx devuelve los valores de una matriz.

El método IADs::GetEx recupera las propiedades de la memoria caché de propiedades. Si la propiedad especificada no se encuentra en la memoria caché, IADs::GetEx realiza una llamada implícita a IADs::GetInfo .

El método IADs::GetEx devuelve una matriz variant de variantes independientemente del número de valores devueltos desde el servidor. Esto es true incluso si el atributo solo contiene un valor.

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

El método IADs::GetEx también se puede usar para atributos con un solo valor. Los resultados de un atributo con un solo valor se procesan igual que los resultados de un atributo multivalor.

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 no se establece ningún valor para el atributo, IADs::GetEx devuelve el error "Propiedad no encontrada en la memoria caché".