Я пытаюсь написать скрипт vb, который запрашивает у пользователя атрибут схемы, который я назову bID, и проверяет, что человек с таким bID находится в активном каталоге. Я действительно понятия не имею, с чего начать, есть множество примеров того, как запрашивать пользователей активных каталогов, но я не нашел хорошего в отношении проверки определенных атрибутов. Любая помощь / предложения с благодарностью!
UPDATE:
Хорошо, пока мой код, не выдает ошибку и возвращает 0, но я почему-то не получаю wscript.echo отличительного имени. Я включил несколько отладочных wscript.echo, и похоже, что они никогда не попадают в цикл while. Есть идеи?
Option Explicit
GetUsers "CN=users,DC=example,DC=example,DC=example,DC=com","123456"
Function GetUsers(domainNc, ID)
Dim cnxn
Set cnxn = WScript.CreateObject("ADODB.Connection")
cnxn.Provider = "ADsDSOObject"
cnxn.Open "Active Directory Provider"
Dim cmd
Set cmd = WScript.CreateObject("ADODB.Command")
cmd.ActiveConnection = cnxn
cmd.CommandText = "<LDAP://" & domainNc & ">;(&(objectCategory=user)(objectClass=user) (employeeNumber=" & ID & "));distinguishedName;subtree"
WScript.Echo cmd.CommandText
cmd.Properties("Page Size") = 100
cmd.Properties("Timeout") = 30
cmd.Properties("Cache Results") = False
WScript.Echo "setting cmd.properties"
Dim rs
Set rs = cmd.Execute
WScript.Echo "rs object set"
While Not rs.eof
On Error Resume Next
WScript.Echo "while loop start"
Wscript.Echo rs.fields("distinguishedName".Value)
rs.MoveNext
If (Err.Number <> 0) Then
WScript.Echo vbCrLf& "Error # "& CStr(Err.Number)& " "& Err.Description
Else
On Error GoTo 0
End If
Wend
WScript.Echo "while loop end"
rs.close
WScript.Echo "rs object closed"
cnxn.Close
Set rs = Nothing
Set cmd = Nothing
Set cnxn = Nothing
End Function