'###################################################################
'# VB Script ("".vbs)
'# Autor: Jens Warkentin ([
url]www.InnovaSoft.de[/
url])
'###################################################################
Const ADS_SCOPE_SUBTREE = 2
Dim Wurzel,DOMAINROOT,Password
Set Wurzel = GetObject("LDAP://RootDSE")
'------------------------------------------------------------
DOMAINROOT = "'LDAP://"+Wurzel.Get("defaultNamingContext")&"'"
'
ADO Commection erzeugen
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
'
ADO Provider auswählen (exisiert nur auf
DC's und auf PC's mit ADS Verwaltungstools)
objConnection.Provider = "ADsDSOObject"
'ADOConn connecten
objConnection.Open "Active Directory Provider"
'ADOCmd mit der ADOConnection verbinden
Set objCOmmand.ActiveConnection = objConnection
'ADOCmd CommandText setzen und ausführen
'Dieser Select holt alle Benutzerobjekte im AD
objCommand.CommandText = _
"Select Name, Location, CN, DistinguishedName, ADsPath from " & DOMAINROOT &
"Where objectCategory='person' AND objectClass='user' "
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
Set objRecordSet = objCommand.Execute
'Ergebnismenge durchlaufen
objRecordSet.MoveFirst
dim ADSPath,userobj,Vorname,Nachname,Email
Do Until objRecordSet.EOF
' vollqualifizierten LDAP Namen des Users holen
ADSPath= "CN: " & objRecordSet.Fields("CN").Value & " " & "ADsPath: " & objRecordSet.Fields("ADsPath").Value
'Benutzer Objekt erstellen (OLEVARIANT)
set UserObj = GetObject(objRecordSet.Fields("ADsPath").Value)
' Werte auslesen
UserObj.Getinfo
Vorname = UserObj.FirstName
Nachname = UserObj.LastName
Telefon = UserObj.Email
'Mach was mit Vorname, Nachname, Email ....
'Benutzerobjekt freigeben
set userobj = nothing
'nächsten User holen
objRecordSet.MoveNext
Loop