Active Directory Scripting – find User Account
Reference page: Active Directory – Sample Scripts (Excel/VBA)
Description
The function below performs 1-layer deep search of User Account object in all Organizational Units contained under parent Organizational Unit. The function can be easily modified for a recursive search if children OU hierarchy is unknown. Use objUser.Get(“distinguishedName”) to retrieve full LDAP path of found User Account object and parse path string to get OU names that contain the object.
The function returns TRUE if search was successful.
(in) sLogin – is a unique user login name which must be same as CN of an object.
(in) objRootOU – root (parent) Organizational Unit.
(out) objUser – User Account object reference
Private Function SearchForUser(ByVal sLogin, ByRef objRootOU, ByRef objUser)
Dim boolFound
Dim objOU
Dim sOUName, sUserName
boolFound = False
sLogin = UCase(sLogin)
objRootOU.Filter = Array("organizationalUnit")
For Each objOU In objRootOU
sOUName = Mid(objOU.Name, 4)
objOU.Filter = Array("user")
For Each objUser In objOU
sUserName = Mid(objUser.Name, 4)
If UCase(sUserName) = sLogin Then
boolFound = True
Exit For
End If
Next
If boolFound Then
Exit For
End If
Next
SearchForUser = boolFound
End Function

