Re: How to change script to run thru multiple objects
- From: "Jeremy" <jeremy@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Wed, 2 May 2007 07:02:22 +1000
Have a look at this, it returns all users in a Domain, you should be able to incorporate both.
Cheers,
Jeremy.
-->8
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
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = _
"SELECT Name FROM 'LDAP://dc=fabrikam,dc=com' WHERE objectCategory='user'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
Wscript.Echo objRecordSet.Fields("Name").Value
objRecordSet.MoveNext
Loop
-->8
"BookerT" <chipw@xxxxxxxxxx> wrote in message news:1178028721.313912.301620@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Currently I have a script that will let me know when an individual
user inside of Active Directory password will change. I want to know
how to revise it to give me a report on all of the users in a
particular OU. The script is below:
On Error Resume Next
Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000
Const E_ADS_PROPERTY_NOT_FOUND = &h8000500D
Const ONE_HUNDRED_NANOSECOND = .000000100
Const SECONDS_IN_DAY = 86400
Set objUser = GetObject("LDAP://
CN=user1,OU=MBA,OU=People,DC=fabrikamt,DC=gt,DC=edu")
intUserAccountControl = objUser.Get("userAccountControl")
If intUserAccountControl And ADS_UF_DONT_EXPIRE_PASSWD Then ' LINE
11
WScript.Echo "The password does not expire."
WScript.Quit
Else
dtmValue = objUser.PasswordLastChanged
If Err.Number = E_ADS_PROPERTY_NOT_FOUND Then ' LINE
16
WScript.Echo "The password has never been set."
WScript.Quit
Else
intTimeInterval = Int(Now - dtmValue)
WScript.Echo "The password was last set on " & _
DateValue(dtmValue) & " at " & TimeValue(dtmValue) & vbCrLf
& _
"The difference between when the password was last" & vbCrLf
& _
"set and today is " & intTimeInterval & " days"
End If
Set objDomain = GetObject("LDAP://DC=fabrikamt,DC=gt,DC=edu")
Set objMaxPwdAge = objDomain.Get("maxPwdAge")
If objMaxPwdAge.LowPart = 0 Then
WScript.Echo "The Maximum Password Age is set to 0 in the " &
_
"domain. Therefore, the password does not
expire."
WScript.Quit
Else
dblMaxPwdNano = _
Abs(objMaxPwdAge.HighPart * 2^32 + objMaxPwdAge.LowPart)
dblMaxPwdSecs = dblMaxPwdNano * ONE_HUNDRED_NANOSECOND ' LINE
37
dblMaxPwdDays = Int(dblMaxPwdSecs / SECONDS_IN_DAY) ' LINE
38
WScript.Echo "Maximum password age is " & dblMaxPwdDays & "
days"
If intTimeInterval >= dblMaxPwdDays Then
WScript.Echo "The password has expired."
Else
WScript.Echo "The password will expire on " & _
DateValue(dtmValue + dblMaxPwdDays) & " (" & _
Int((dtmValue + dblMaxPwdDays) - Now) & " days from
today)."
End If
End If
End If
ANy ideas?
Thanks
.
- Follow-Ups:
- Re: How to change script to run thru multiple objects
- From: Richard Mueller [MVP]
- Re: How to change script to run thru multiple objects
- References:
- How to change script to run thru multiple objects
- From: BookerT
- How to change script to run thru multiple objects
- Prev by Date: Re: Editing a text file
- Next by Date: Re: File Server Script
- Previous by thread: How to change script to run thru multiple objects
- Next by thread: Re: How to change script to run thru multiple objects
- Index(es):
Loading