Anyone can use Active Directory Users and Computers to search fora user. Just right-click the container you want to search, and select the find option. Easy-peasy, lemon squeezy.
But how can you programmatically search Active Directory? It’s pretty straightforward, actually. This VBScript sample will show you a couple of different basic concepts of working with AD.
- Define search parameters
- Define ADO databjects for the connections
- Open a connection to Active Directory
- Perform an LDAP query
- Process the results
This code sample may be pretty basic to some folks in the IT world. But remember, there are those that are just starting their journey into the world of technology, and might need a bit of help to get rolling. As such, I’ve commented the code quite a bit, in order to help understanding of what is going on.
Feel free to ask questions, though. That’s why the site is here – answer your questions!
On Error Resume Next
Const ADS_SCOPE_SUBTREE = 2
' ***
' *** change these values to search for a different user, or
' *** search in a different domain.
' ***
' *** samAccountName = username to be searched for
' *** MyDomainName = Domain to be searched
' ***
NameToSearchFor = "MyUserName"
MyDomainName = "dc=mydomain,dc=com"
' ***
' *** Make objects
' ***
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
' ***
' *** Make connection to Active Directory and execute
' ***
objConnection.Provider = ("ADsDSOObject")
objConnection.Open "Active Directory Provider"
objCommand.ActiveConnection = objConnection
objCommand.CommandText = "SELECT samAccountName FROM " & _
"'LDAP://" & MyDomainName & "' " & _
"WHERE samAccountName = '" & MyUserName & "'"
objCommand.Properties("SearchScope") = ADS_SCOPE_SUBTREE
Set objRecordSet = objCommand.Execute
' ***
' *** output the results to the screen
' ***
If objRecordSet.RecordCount = 0 Then
Wscript.Echo MyUserName & " is not in use."
Else
Wscript.Echo MyUserName & " is being used."
End If