Я хочу запросить Active Directory с использованием VBScript (классический ASP). Как я могу это сделать?Запрос Active Directory с помощью VBScript
ответ
Чтобы посмотреть на всех членов подразделению, попробуйте это ...
Set objOU = GetObject("LDAP://OU=YourOU,DC=YourDomain,DC=com")
For each objMember in ObjOU ' get all the members'
' do something'
Next
Чтобы сделать пользовательский поиск для DNs попробовать это ...
set conn = createobject("ADODB.Connection")
Set iAdRootDSE = GetObject("LDAP://RootDSE")
strDefaultNamingContext = iAdRootDSE.Get("defaultNamingContext")
Conn.Provider = "ADsDSOObject"
Conn.Open "ADs Provider"
strQueryDL = "<LDAP://" & strDefaultNamingContext & ">;(&(objectCategory=person)(objectClass=user));distinguishedName,adspath;subtree"
set objCmd = createobject("ADODB.Command")
objCmd.ActiveConnection = Conn
objCmd.Properties("SearchScope") = 2 ' we want to search everything
objCmd.Properties("Page Size") = 500 ' and we want our records in lots of 500
objCmd.CommandText = strQueryDL
Set objRs = objCmd.Execute
While Not objRS.eof
' do something with objRS.Fields("distinguishedName")'
objRS.MoveNext
Wend
Кен, если бы я хотел, чтобы получить значение "SamAccountName" для частности FirstName и LastName значение, основанное на первом примере, я бы Если ObjOU.FirstName = «Аланией» и ObjOU.LastName = «Smith», то sVariable = ObjOU.sAMAccountName будет ли это правильно? – Frank
Лучшим способом было бы использовать конкретное имя/фамилию, которые вы ищете в запросе ... strQueryDL = "
Вы хотите использовать Active Directory Service Interfaces (ADSI)
ADSI Scripting Primer - хорошее место, чтобы начать изучение и найти примеры. (кстати, эти ссылки относятся к Windows 2000, но действительны и для последующих версий Windows).
Мне пришлось запросить WinAD по имени пользователя oldskool, этот .vbs-скрипт печатает учетные записи пользователей.
- Поиск по SamAccountName, используйте символ *
- печать несколько атрибутов от каждого объекта пользователя
- использования AccountType фильтра его самого оптимизированный способ итерации пользователя AD объектов
Тестового скрипт первым получает пользователь объект по полной линии, это просто пример. Вторая часть выполняет фактический запрос с помощью фильтра smith *.
WinADSearch.vbs
' c:> cscript -nologo script.vbs
' c:> wscript script.vbs
' http://msdn.microsoft.com/en-us/library/d6dw7aeh%28v=vs.85%29.aspx
' WindowsAD queries
' http://www.kouti.com/tables/userattributes.htm
Option Explicit
'On Error Resume Next
Dim StdOut: Set StdOut = WScript.StdOut
Dim objUser
Set objUser = GetObject("LDAP://CN=Firstname Lastname,OU=Internal Users,OU=MyCompany,OU=Boston,OU=Root,DC=REGION1,DC=COM")
println(objUser.givenName & " " & objUser.middleName & " " & objUser.lastName)
println("name=" & objUser.name)
println("displayName=" & objUser.displayName)
println("userPrincipalName=" & objUser.userPrincipalName)
println("sAMAccountName=" & objUser.sAMAccountName)
println("distinguishedName=" & objUser.distinguishedName)
println("")
Dim conn, strQueryDL, strAttrs, objCmd, objRs, idx
set conn = createobject("ADODB.Connection")
conn.Provider = "ADsDSOObject"
conn.Open "ADs Provider"
strAttrs = "sAMAccountName,displayName,distinguishedName" ' get attributes
'strQueryDL = "<LDAP://dc=REGION1,dc=COM>;(& (objectCategory=person));" & strAttrs & ";SubTree"
'strQueryDL = "<LDAP://dc=REGION1,dc=COM>;(& (objectCategory=person)(objectClass=user));" & strAttrs & ";SubTree"
'strQueryDL = "<LDAP://dc=REGION1,dc=COM>;(& (objectCategory=person)(objectClass=user)(sAMAccountName=smith*));" & strAttrs & ";SubTree"
strQueryDL = "<LDAP://dc=REGION1,dc=COM>;(& (samAccountType=805306368)(sAMAccountName=smith*));" & strAttrs & ";SubTree"
set objCmd = createobject("ADODB.Command")
objCmd.ActiveConnection = Conn
objCmd.Properties("SearchScope") = 2 ' search everything
objCmd.Properties("Page Size") = 100 ' bulk operation
objCmd.CommandText = strQueryDL
println(objCmd.CommandText)
Set objRs = objCmd.Execute
idx=0
do while Not objRS.eof
idx=idx+1
println(objRs.Fields("sAMAccountName") & "/" & objRs.Fields("displayName") & "/" & objRs.Fields("distinguishedName"))
if (idx>5) then exit do
objRS.MoveNext
loop
objRs.Close
Conn.close
set objRs = Nothing
set conn = Nothing
println("end")
'********************************************************************
Sub println(ByVal str)
If (StdOut Is Nothing) Then Exit Sub
StdOut.WriteLine str
End Sub
- 1. Active Directory VBScript Issue
- 2. Запрос Active Directory с «SQL»?
- 3. Извлечь Active Directory в базу данных SQL с помощью VBScript
- 4. запросов Active Directory и экспорт с помощью VBScript/WSH
- 5. Запрос Active Directory
- 6. VBScript Active Directory Получить атрибуты/свойства
- 7. Active Directory Buid Поисковый запрос
- 8. Поиск в VBScript Имя Active Directory, переходящее на домашний телефон
- 9. Запрос Active Directory с Sql Server 2008
- 10. Active Directory
- 11. Аутентификация Active Directory Active Directory и WCF
- 12. Active Directory с Apache
- 13. NodeJS - аутентификация с помощью Active Directory
- 14. Заполнение Active Directory с помощью SSIS
- 15. Флаги системы репликации Active Directory с репликацией Active Directory
- 16. Аутентификация Active Directory Active Directory с использованием форм PCL Xamarin
- 17. Аутентификация с помощью Active Directory несколькими клиентами
- 18. Проверка подлинности форм Active Directory Active Directory
- 19. Запрос python urllib2, использующий аутентификацию Active Directory
- 20. Проверка подлинности Active Directory Active Directory
- 21. Проблемы с Active Directory
- 22. Проверка подлинности Active Directory с помощью ldap.js
- 23. Сервер Subversion с помощью Active Directory
- 24. Управление Active Directory с помощью F #
- 25. Доступ к Active Directory с помощью C
- 26. Как настроить Active Directory с помощью TFS?
- 27. Возможны ли откаты с помощью Active Directory?
- 28. Проверка подлинности Active Directory с помощью Kerberos
- 29. Active Directory с помощью LDAP в C#
- 30. Spring Security 3.1 с помощью Active Directory
http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts/usersgroups/users/ – Shoban