Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O método IADs.GetInfoEx é usado para carregar valores de atributos específicos no cache local a partir do serviço de diretório subjacente. Esse método carrega apenas os valores de atributo especificados no cache local. O método IADs.GetInfo é usado para carregar todos os valores de atributo no cache local.
O método IADs.GetInfoEx obtém valores atuais específicos para as propriedades de um objeto do Ative Directory do armazenamento de diretório subjacente, atualizando os valores armazenados em cache.
No entanto, se já existir um valor no cache de propriedades, chamar o IADs.Get ou método IADs.GetEx sem primeiro chamar IADs.GetInfoEx para esse atributo recuperará o valor armazenado em cache em vez do valor mais atual do diretório subjacente. Isso pode fazer com que, se o cache local tiver sido modificado, os valores de atributos atualizados sejam substituídos, mas ainda não tenham sido confirmados no serviço de diretório subjacente com uma chamada para o método IADs.SetInfo . O método sugerido para evitar problemas de cache é sempre confirmar alterações de valor de atributo chamando IADs.SetInfo antes de chamar IADs.GetInfo.
Dim usr As IADs
Dim PropArray As Variant
On Error GoTo Cleanup
' Bind to a specific user object.
Set usr = GetObject("LDAP://CN=Jeff Smith,CN=Users,DC=fabrikam,DC=com")
' The code example assumes that the property description has a single value in the directory.
' Be aware that this will implicitly call GetInfo because, at this point, GetInfo
' has not yet been called (implicitly or explicitly) on the usr object.
Debug.Print "User's common name is " + usr.Get("cn")
Debug.Print "User's title is " + usr.Get("title")
Debug.Print "User's department is " + usr.Get("department")
' Change two of the attribute values in the local cache.
usr.Put "cn", "Jeff Smith"
usr.Put "title", "Vice President"
usr.Put "department", "Head Office"
Debug.Print "User's common name is " + usr.Get("cn")
Debug.Print "User's title is " + usr.Get("title")
Debug.Print "User's department is " + usr.Get("department")
' Initialize the array of properties to pass to GetInfoEx.
PropArray = Array("department", "title")
' Get the specified attribute values.
usr.GetInfoEx PropArray, 0
' The specific attributes values were overwritten, but the attribute
' value not retrieved has not changed.
Debug.Print "User's common name is " + usr.Get("cn")
Debug.Print "User's title is " + usr.Get("title")
Debug.Print "User's department is " + usr.Get("department")
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set usr = Nothing
Recuperando atributos construídos do Ative Directory
No Ative Directory, a maioria dos atributos construídos são recuperados e armazenados em cache quando o método IADs.GetInfo é chamado (IADs.Get executa uma implícita IADs.GetInfo chamada se o cache estiver vazio). Alguns atributos construídos, no entanto, não são recuperados e armazenados em cache automaticamente e, portanto, exigem que o métodoIADs.GetInfoExseja chamado explicitamente para recuperá-los. Por exemplo, no Ative Directory, o atributo canonicalName não é recuperado quando o método IADs.GetInfo é chamado e IADs.Get retornará E_ADS_PROPERTY_NOT_FOUND. O método IADs.GetInfoEx deve ser chamado para recuperar o atributo canonicalName. Esses mesmos atributos construídos também não serão recuperados usando a interface IADsPropertyList para enumerar os atributos.
Para obter mais informações e um exemplo de código que mostra como recuperar todos os valores de atributo, consulte código de exemplo para ler um atributo construído.