| Platform SDK: Active Directory, ADSI, and Directory Services |
To connect to an NDS Server, you bind to the NDS object using an NDS ADsPath. This example shows how to enumerate the various ADSI objects of an NDS server.
Dim dso
Dim obj
Dim usrName
Dim password
Dim serverName
servername = "ntmarst2"
userName = "supervisor.ntmarst2"
password = "secretpwd"
'--bind to the server
Set dso = GetObject("NDS:")
Set cont = dso.OpenDSObject("NDS://" & serverName,userName,password,0)
'--enumerate the server's objects
For Each obj In cont
Debug.Print obj.Name & " (" & obj.Class & ")"
Next
To retrieve and modify a user object's attribute, bind to the NDS object and change the desired property value using the Get and Put methods. This example changes a particular user's last name to "Johnson".
Path = "O=NTMARST2/CN=benny"
ADsPath = "NDS://" & serverName & "/" & Path
Set usr = dso.OpenDSObject(ADsPath, userName, password, 0)
Debug.Print usr.Get("Surname")
usr.Put "SurName", "Johnson"
usr.SetInfo
This example creates a new user with a username of "bagheeraw".
Path = "O=NTMARST2"
ADsPath = "NDS://" & serverName & "/" & Path
Set cont = dso.OpenDSObject(ADsPath, userName, password, 0)
Set usr = cont.Create("user", "bagheeraw")
usr.Put "cn", "Bagheera"
usr.Put "Surname", "White"
usr.SetInfo
This example searches an NDS server for a user with a surname of "Bagheera".
ADsPath = "NDS://" & serverName
Set con = CreateObject("ADODB.Connection")
con.Provider = "ADsDSOObject"
con.Properties("User ID") = userName
con.Properties("Password") = password
con.Open "ADSI"
Set com = CreateObject("ADODB.Command")
Set com.ActiveConnection = con
com.CommandText = "SELECT ADsPath, 'Object Class' FROM '" & ADsPath & "' WHERE Surname='Bagheera'"
Set rs = com.Execute
While Not (rs.EOF)
Debug.Print rs.Fields("ADsPath")
rs.MoveNext
Wend