Active Directory/Search for a user
Active Directory/Search for a user
You are encouraged to solve this task according to the task description, using any language you may know.
You are encouraged to solve this task according to the task description, using any language you may know.
VBScript
Make sure you Connect to Active Directory
The search string and execution of the string
strUsername = "TestUser" strQuery = "<LDAP://dc=skycityauckland,dc=sceg,dc=com>;"_ & "(&(objectclass=*)(samaccountname=" & strUsername & "));distinguishedname;subtree" objCmd.ActiveConnection = objConn objCmd.Properties("Page Size")=100 objCmd.CommandText = strQuery Set objRS = objCmd.Execute
Doing something with a single result (this will output the returned users full DN)
If objRS.RecordCount = 1 Then WScript.Echo objRS.Fields("DistinguishedName") End If
Doing something with multiple results (this will output each returned users full DN)
If objRS.RecordCount > 0 Then For Each objUser in ObjRS WScript.Echo objRS.Fields("DistinguishedName") Next End If
Tcl
One can do it with the low level Connect to Active Directory based handle with this code:
This is just the basic setup.
set Username "TestUser" set Filter "((&objectClass=*)(sAMAccountName=$Username))" set Base "dc=skycityauckland,dc=sceg,dc=com" set Attrs distinguishedName
Now do the actual search.
set result [ldap::search $conn $Base $Filter $Attrs -scope subtree]
If we have only a single result its easy:
if {[llength $result] == 1} { puts [dict get [lindex $result 0 1] distinguishedName] }
Looping over the result set to output some values.
foreach pair $result { lassign $pair cn attributes puts [dict get $attributes distinguishedName] }
If your bored you can also use this instead:
package require ldapx set conn [ldapx::connect $BindDN $Password] $conn traverse $Base $Filter $Attrs e { puts [$e get distinguishedName] }