O método GetEx
Alguns atributos podem armazenar um ou mais valores. Por exemplo, o atributo otherTelephone de um objeto de usuário no Active Directory é uma propriedade que pode ter zero, um ou muitos valores. Os atributos que têm vários valores são conhecidos como "atributos de valores múltiplos". Se o método IADs::Get for usado para recuperar um atributo de vários valores, os resultados deverão ser processados de forma diferente do que se o atributo tiver um único valor. Os resultados fornecidos pelo método IADs::GetEx , no entanto, são processados da mesma maneira, independentemente se o atributo tem um único ou vários valores. Em ambos os casos, o método IADs::GetEx retorna os valores em uma matriz.
O método IADs::GetEx recupera propriedades do cache de propriedades. Se a propriedade especificada não for encontrada no cache, IADs::GetEx executará uma chamada implícita de IADs::GetInfo .
O método IADs::GetEx retorna uma matriz variante de variantes, independentemente do número de valores retornados do servidor. Isso é verdadeiro mesmo se o atributo contiver apenas um 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
O método IADs::GetEx também pode ser usado para atributos de valor único. Os resultados de um atributo de valor único são processados da mesma forma que os resultados de um atributo de valor múltiplo.
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
Se nenhum valor for definido para o atributo, IADs::GetEx retornará o erro "Propriedade não encontrada no cache".