Note: I haven't gotten around to testing it yet.
' PasswordReset.vbs
' Resets all passwords within an AD Container
' Version 1.0
' 27 September 2010
Option Explicit
Dim objRootDSE, objOU, objUser
Dim strTargetOU, strForceReset, strEnAcct, strDNSDomain, strNewPass
Dim intCounter, intUACval, intPWLval
' Change strTargetOU to location of user accounts
strTargetOU = "MyContainer"
' Change strNewPass to the new password
strNewPass = "Password123"
' Change strForceReset to "Yes" in order to force users to reset passwords
strForceReset = "No"
' Change strEnAcct to "Yes" in order to enable disabled accounts
strEnAcct = "No"
' Int Values
' See Microsoft KB305144 for UserAccountControl values
' Setting PwdLastSet value to 0 forces password reset
intUACval = 544
intPWLval = 0
intCounter = 0
Set objRootDSE = GetObject("LDAP://RootDSE")
strDNSDomain = objRootDSE.Get("DefaultNamingContext")
strTargetOU = "OU=" & strTargetOU & ", " & strDNSDomain
set objOU =GetObject("LDAP://" & strTargetOU )
For each objUser in objOU
If objUser.class="user" then
objUser.SetPassword strNewPass
objUser.SetInfo
If strForceReset="Yes"
objUser.Put "pwdLastSet", intPWLval
objUser.SetInfo
End if
If strEnAcct="Yes"
objUser.Put "userAccountControl", intUACval
objUser.SetInfo
End if
intCounter = intCounter +1
End if
Next
WScript.Echo "New Password: " & strNewPass & vbCr & "Accounts changed: " & intCounter _
& vbCr & "Password Change Forced: " & strForceReset & vbCr & "Disabled Accounts Enabled: " & strEnAcct