Revision: 57783
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at June 9, 2012 08:29 by joseamirandavelez
Initial Code
Function getLDAPName(clockNumber As String)
'
'Declare Variables
Dim objAdoCon, objAdoCmd, objAdoRS
Dim objUser, objRootDSE
Dim strDomainDN, strUserFullName
Dim intAnswer As Integer
On Error GoTo Err_NoNetwork
' Get current logged in user name
'strUserFullName = Environ("UserName")
' Get the DN of the user's domain
Set objRootDSE = GetObject("LDAP://rootDSE")
strDomainDN = objRootDSE.Get("defaultNamingContext")
' Search the domain for the user's account object
Set objAdoCon = CreateObject("ADODB.Connection")
objAdoCon.Open "Provider=ADsDSOObject;"
Set objAdoCmd = CreateObject("ADODB.Command")
Set objAdoCmd.ActiveConnection = objAdoCon
objAdoCmd.CommandText = _
"SELECT ADsPath FROM 'LDAP://" & strDomainDN & "' WHERE " & _
"objectCategory='person' AND objectClass='user' AND " & _
"sAMAccountName='" & clockNumber & "'"
Set objAdoRS = objAdoCmd.Execute
' If found, get the displayName attribute.
If (Not objAdoRS.EOF) Then
Set objUser = GetObject(objAdoRS.Fields("ADsPath").Value)
'Get common name
objUser.GetInfoEx Array("CN"), 0
commonName = objUser.Get("CN")
'get first name
objUser.GetInfoEx Array("givenName"), 0
firstName = objUser.Get("givenName")
'get last name
objUser.GetInfoEx Array("SN"), 0
lastName = objUser.Get("SN")
'get display name
objUser.GetInfoEx Array("DisplayName"), 0
DisplayName = objUser.Get("DisplayName")
Set objUser = Nothing
getLDAPName = commonName
Else
' handle "not found" error here
GoTo Err_NoNetwork
End If
Set objAdoRS = Nothing
Set objAdoCmd = Nothing
objAdoCon.Close
Set objAdoCon = Nothing
Set objRootDSE = Nothing
Set WshNetwork = Nothing
GoTo Exit_Sub
Exit_Sub:
Exit Function
Err_NoNetwork:
getLDAPName = "Error"
GoTo Exit_Sub
End Function
Initial URL
Initial Description
This function is very rough and right now is hard coded to return the common name. This can be useful if, for example, you have a list of usernames in Excel and you want to get the name of the person. However, it can be used in any VBA application.
Initial Title
Get LDAP Full Name from LDAP username
Initial Tags
Initial Language
Visual Basic