AD alle User auslesen

Dieses Thema AD alle User auslesen im Forum "Windows XP Forum" wurde erstellt von MaleX, 10. Sep. 2010.

Thema: AD alle User auslesen Hallö, ich soll ein Script erstellen, dass alle User unseres AD ausliest und dann ausgibt, wann der User angelegt...

  1. Hallö,

    ich soll ein Script erstellen, dass alle User unseres AD ausliest und dann ausgibt, wann der User angelegt worden ist.

    Code:
    
    Option Explicit
    On Error Resume Next
    Const ADS_PROPERTY_UPDATE = 2
    const start = 2000
    
    DIM username, ou, n, StrData, j, name, i, jahr, k,l
    DIM objUser, objConnection, objCommand
    Dim objShell, DataOut, head
    DIM strComputer, colItems, objWMIService,objItem
    'Array für die Jahre erstellen
    DIM yArr()
    'Groesse des Arrays festlegen
    REDIM yARR(initialize())
    
    
    Set objShell = CreateObject(WScript.Shell)
    
    
    'AODB verbindung aufbauen
    Set objConnection = CreateObject(ADODB.Connection)
    Set objCommand = CreateObject(ADODB.Command)
    objConnection.Provider = ADsDSOObject
    objConnection.Open Active Directory Provider
    Set objCommand.ActiveConnection = objConnection
    
    
    for l = 0 to UBound(yArr)
    	yArr(l) = 0			
    next
    
    
    strComputer = .
    Set objWMIService = GetObject(winmgmts:\\ & strComputer & \root\cimv2)
    Set colItems = objWMIService.ExecQuery(Select * from Win32_UserAccount)
    
    For Each objItem in colItems
    
    	name = objItem.Name
    	ou = getOUByUserName(name)
    		if ou =  then
    			msgobx(name)
    		else
    			
    				i = 0
    					
    				Set objUser = GetObject(LDAP://cn= & name & , & ou)
    				
    				
    					If err.number <> 0 then
    						msgbox(Error:  & name &   & err.number &  _
    						& err.description &   & err.HelpContext &   & err.source)
    						
    					else
    							
    						jahr = YEAR(objUser.WhenCreated)
    						l = 0
    						
    						for k = start to year(date)
    									
    							if k = jahr then
    								yArr(l) = yArr(l) + 1
    							end if
    											
    							l = l + 1
    						next
    				
    					end if
    					
    					i =i+1
    				
    		end if
    
    next	
    		
    	
    
    head = User Entwicklung & vbcrlf &vbcrlf & Jahr & vbtab & Anzahl & vbcrlf
    
    l = 0
    for k = start to year(date)
    	DataOut = DataOut & k & vbtab & yArr(l) & vbcrlf
    	l = l + 1
    next
    
    msgbox(head & DataOut)
    
     
    'OU des Users ermitteln
    function getOUByUserName(byval UserName)
    
    	DIM namingContext, ldapFilter, ou
    	DIM cn, cmd, rs
    	DIM objRootDSE
    
    	set objRootDSE = getobject(LDAP://RootDSE)
    		namingContext = objRootDSE.Get(defaultNamingContext)
    	set objRootDSE = nothing
    
    	ldapFilter = <LDAP:// & namingContext & >;(&(objectCategory=User)(name= & userName & )) & ;distinguishedName
    	set cn = createobject(ADODB.Connection)
    	set cmd = createobject(ADODB.Command)
    
    	cn.open Provider=ADsDSOObject;
    	cmd.activeconnection = cn
    	cmd.commandtext = ldapFilter
    	set rs = cmd.execute
    
    	if rs.eof <> true and rs.bof <> true then
    		ou = rs(0)
    		ou = mid(ou,instr(ou,,)+1,len(ou)-instr(ou,,))
    		getOUByUserName = ou
    	end if
    	
    	rs.close
    	cn.close
    end function
    
    'Groesse des Arrays ermitteln
    function initialize() 
    
    	dim k, ix
    	ix = 0
    	
    	for k = start to year(date)
    		ix = ix + 1
    	next
    
    	initialize = ix
    
    end function
    
    
    
    Soweit funktioniert es auch, allerdings nur bei den ersten 40 Usern die im AD gefunden werden, danach findet es die User einfach nicht mehr?? :|
    Steh mitlerweile voll auf dem schlauch :'(

    Vll kann mir ja jemand weiterhelfen oder mir einen Tipp geben wo ich hänge...

    Danke

    Malex
     
Die Seite wird geladen...

AD alle User auslesen - Ähnliche Themen

Forum Datum
PC weitergeben, alle Daten außer System löschen Windows 7 Forum 15. Feb. 2015
Alle USB-Geräte (außer Maus) werden auf ein mal nicht mehr erkannt Windows XP Forum 19. Aug. 2014
Außer IE laden alle Browser sehr sehr langsam. Firewalls & Virenscanner 16. Aug. 2010
Abstimmung - Bitte an alle USER: nehmt teil Windows XP Forum 15. März 2010
Gesucht: Newsletter-Dienst den alle registrierten user benutzen können Windows XP Forum 16. März 2010