我想使用VBScript(传统ASP)查询Active Directory。 我该怎么做到这一点?使用VBScript查询Active Directory
4
A
回答
6
看一个OU中的所有成员,试试这个...
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
+0
肯,如果我想获得一个在 “sAMAccountName赋” 值特别是名字和姓氏值,根据您的第一个例子,我会做 如果ObjOU.FirstName =“阿兰”和ObjOU.LastName =“史密斯”随后 sVariable = ObjOU.sAMAccountName 这是正确? – Frank 2009-07-07 18:53:27
0
你想用Active Directory Service Interfaces (ADSI)
ADSI Scripting Primer是一个开始学习和找到示例的好地方。 (顺便说一句,这些链接指的是Windows 2000,但也适用于后续版本的Windows)。
1
我必须通过oldskool用户名查询WinAD,这个.vbs脚本打印用户帐户。
- 查找SAM帐户,使用通配符*
- 打印从每个用户对象的几个属性
- 使用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. 使用PowerShell查询Active Directory
- 2. 查询Active Directory
- 3. 查询Active Directory和出口使用VBScript/WSH
- 4. Parallelise Active Directory查询
- 5. 用“SQL”查询Active Directory?
- 6. VBScript错误访问Active Directory
- 7. 在Active Directory中查询PrincipalContext
- 8. 使用Java来查询Active Directory查找可用的CIFS共享
- 9. 通过传递家庭电话VBScript查找Active Directory用户名
- 10. VBScript Active Directory检索属性/属性
- 11. 使用VBScript检索Active Directory(LDAP)中的所有用户
- 12. php Active Directory查找
- 13. Active Directory用户检查
- 14. 在NT AUTHORITY/NETWORK SERVICE下查询Active Directory
- 15. 查询Active Directory以列表视图
- 16. Active Directory查询疑难解答
- 17. 从SQL Server 2005查询Active Directory
- 18. 查询Active Directory以获得在Android
- 19. Active Directory自定义搜索LDAP查询
- 20. UserPrincipal对象,Active Directory查询:DirectoryServicesCOMException
- 21. 使用VBScript和Active Directory通过SID查找用户电子邮件
- 22. 连接并更改Active Directory - 使用vbscript,windows服务或javascript?
- 23. 使用VBScript将Active Directory提取到SQL数据库中
- 24. 使用LDAP查询减少Jira中的Active Directory用户
- 25. 使用Active Directory查找服务器
- 26. 如何使用C#和ADODB查询Active Directory?
- 27. 我使用哪个帐户查询Active Directory?
- 28. 使用LDAP和PHP查询Active Directory信息
- 29. 使用命令行中的ldapsearch查询Windows Active Directory服务器
- 30. 从Windows或Linux设备使用Python 2.7查询Windows Active Directory
http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts/usersgroups/users/ – Shoban 2009-07-07 04:22:55