Ich möchte Active Directory mit VBScript (classic ASP) abfragen. Wie kann ich das erreichen?Abfrage von Active Directory mit VBScript
Antwort
Um bei allen Mitgliedern einer OU zu suchen, versuchen Sie diese ...
Set objOU = GetObject("LDAP://OU=YourOU,DC=YourDomain,DC=com")
For each objMember in ObjOU ' get all the members'
' do something'
Next
eine benutzerdefinierte Suche zu tun für DNs try this ...
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
Ken wollte, wenn ich den "sAMAccountName" Wert für eine bekommen insbesondere Vorname & Name VZ Wert, basierend auf dem ersten Beispiel würde ich tun Wenn ObjOU.FirstName = „Alan“ und ObjOU.LastName = „Smith“ dann sVariable = ObjOU.sAMAccountName das richtig sein? – Frank
Ein besserer Weg wäre, den bestimmten Vornamen/Nachnamen zu verwenden, den Sie in der Abfrage suchen ... strQueryDL = "
Sie wollen Active Directory Service Interfaces (ADSI) verwenden
Die ADSI Scripting Primer ist ein guter Ort, um zu lernen und Beispiele zu finden. (übrigens beziehen sich diese Links auf Windows 2000, sind aber auch für nachfolgende Windows-Versionen gültig).
Ich musste WinAD von oldskool Benutzername abfragen, dieses .vbs-Skript druckt Benutzerkonten.
- Fund von SAMAccountName, Verwendung Platzhalter *
- Druck wenige Attribute von jedem Benutzer-Objekt
- Verwendung Account filtern seiner optimierten Art und Weise AD Benutzer von Iterieren Objekte
Testskript erhält zunächst einen Benutzer Objekt durch voll qualifizierte Zeichenfolge, es ist nur ein Beispiel. Zweiter Teil wird tatsächlich von smith * filter abgefragt.
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-Abfrage Problem
- 2. Abfrage von Active Directory mit "SQL"?
- 3. VBScript: WScript.Shell Mit einem Kommandozeilenprogramm auszuführen, das Active Directory Greift
- 4. Javascript Active Directory Benutzer/Gruppen Abfrage
- 5. Verbinden mit Active Directory von MS Access?
- 6. SQL-Abfrage für deaktivierte Active Directory-Konten
- 7. Active Directory-Synchronisierung mit Transformation?
- 8. Verwenden von C# mit Active Directory-Lernprogrammen
- 9. Verwenden von CSLA.NET mit Active Directory
- 10. Active Directory mit Xamarin Methode
- 11. Rails Authentifikation mit Active Directory
- 12. Suchen Active Directory LDAP mit
- 13. Active Directory (LDAP) Abfrage/Filter zum Abrufen von Exchange-Verteilerlisten
- 14. Active Directory-Gruppen mit SQL Server 2005
- 15. Active Directory in VB.Net
- 16. Active Directory-Mitarbeiterinformationen
- 17. Wie kann ich die Active Directory DialIn Permission Einstellung von LDAP mit VBScript erhalten?
- 18. Active Directory PowerShell Filter
- 19. Active Directory-LDAP-Beispiel
- 20. PHP, Active Directory, Benutzerkontensteuerung
- 21. Azure Active Directory-Rollen
- 22. asp.net Active Directory Anmeldung
- 23. ASP.NET Active Directory-Suche
- 24. Ist Active Directory-Transaktionsüberwachung?
- 25. Active Directory-Benutzer prüft
- 26. Caching Active Directory-Daten
- 27. Active Directory-Autorisierung
- 28. LDAP Active Directory-Pfad
- 29. Sharepoint-Active Directory-Profile
- 30. Active Directory - Django/Rails
http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts/usersgroups/users/ – Shoban