/ Published in: Visual Basic
                    
                                        
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.
                
                            
                                Expand |
                                Embed | Plain Text
                            
                        
                        Copy this code and paste it in your HTML
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
Comments
 Subscribe to comments
                    Subscribe to comments
                
                