thanks as always Richard.
Is there anyway that the date can be dynamic, so the script uses some kind
of getdate function, as opposed to me having to amend the date each time.
Failing that, is it possible to have a simple input box appear and the date
is manually entered and then use the varaible in the whencreated >= part
rather than the text?
"Richard Mueller [MVP]" wrote:
>
> "Simon G" <SimonG@discussions.microsoft.com> wrote in message
> news:18349334-27A4-4F68-86CF-3393C81E8568@microsoft.com...
> > Hello all.
> >
> > I have an ou in which all new users are created. I currently have a script
> > which will list all the members of the ou and some of their attributes.
> >
> > What i want to do is to be able to list this, but only for users who have
> > been created today.
> >
> > Here is the script i am currently using - how can i include the "where
> > user
> > was created today" statement?
> >
> > on error resume next
> >
> > Const ADS_SCOPE_SUBTREE = 2
> >
> > Set objConnection = CreateObject("ADODB.Connection")
> > Set objCommand = CreateObject("ADODB.Command")
> > objConnection.Provider = "ADsDSOObject"
> > objConnection.Open "Active Directory Provider"
> > Set objCommand.ActiveConnection = objConnection
> > Set objFS = CreateObject("Scripting.FileSystemObject")
> > Set objNewFile = objFS.CreateTextFile("newstarters.csv")
> >
> > objCommand.Properties("Page Size") = 1000
> > objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
> >
> > objCommand.CommandText = _
> > "SELECT ADsPath FROM 'LDAP://ou=new starters,,DC=domain,DC=com' WHERE "
> > _
> > & "objectCategory='user'"
> > Set objRecordSet = objCommand.Execute
> >
> > objRecordSet.MoveFirst
> > objnewfile.writeline "samaccountname" & "," & "givenname" & "," & "sn" &
> > ","
> > & "description"
> > Do Until objRecordSet.EOF
> > strPath = objRecordSet.Fields("ADsPath").Value
> > Set objuser = GetObject(strPath)
> >
> > objNewFile.WriteLine objuser.samaccountname & "," & objuser.givenname &
> > ","
> > & objuser.sn & "," & objuser.description
> > objRecordSet.MoveNext
> > Loop
>
> If today is 20071002000000 (yyyymmddhhnnss) then you can use:
>
> "SELECT ADsPath FROM 'LDAP://ou=new starters,DC=domain,DC=com' " _
> & " WHERE objectCategory='person' " _
> & "AND objectClass='user' " _
> & "whenCreated>='20071001000000.0Z'"
>
> I use objectCategory=person and objectClass=user to omit contact objects and
> computers. The ".0Z" means UTC, so you may need to adjust for your time
> zone. For an offset (differential) of +5 hours, it would be:
>
> "whenCreated>='20071001000000.0+0500'"
>
> The formula is:
>
> GMT=Local+differential
>
> Where GMT is the old acronym for UTC (Coordinated Universal Time in French)
> and Local is the local time (in your time zone). Ordinarily these few hours
> don't matter, but if you are searching for objects created since midnight,
> it can matter.
>
> --
> Richard Mueller
> Microsoft MVP Scripting and ADSI
> Hilltop Lab - http://www.rlmueller.net
> --
>
>
>