'====================================================================================== ' ' Scripting Active Directory Users using VBScript ' http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts/usersgroups/users/#SetPwdNeverExp.htm ' ' Configures the domain password for a user account to ensure that the password will never expire. ' ' Usage example: ' csript //nologo nopwdexp.vbs /user:utaz ' ' Note: ' Combined scripts written by www.activexperts.com and Mark Wilson ' '======================================================================================= ' Set constants Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000 ' Set variables Dim objRootDSE Dim objUser Dim colNamedArguments ' Read command line named arguments Set colNamedArguments = WScript.Arguments.Named ' Report missing user argument If colNamedArguments.Exists("user") Then strUser=colNamedArguments.Item("user") Else WScript.Echo "Missing argument: /user:username" Usage End If ' Determine DNS domain name ' dc=phas,dc=ubc,dc=ca Set objRootDSE = GetObject("LDAP://RootDSE") strDNSDomain = objRootDSE.Get("defaultNamingContext") strDNSDomain = "CN=Users," & strDNSDomain Set objUser = GetObject("LDAP://phaspdc/cn=" & strUser & "," & strDNSDomain) intFlag = objUser.Get("userAccountControl") If ADS_UF_DONT_EXPIRE_PASSWD AND intFlag Then Wscript.Echo "Password never expires is already enabled" Else objUser.Put "userAccountControl", intFlag XOR _ ADS_UF_DONT_EXPIRE_PASSWD objUser.SetInfo WScript.Echo "Password never expires is now enabled for " & objUser.Name End If 'Clean up Set objRootDSE = Nothing Set objUser = Nothing WScript.Quit '************************************************************************* Sub Usage() 'Reports the correct command line syntax WScript.Echo VbCr WScript.Echo "nopwdexp.vbs" WScript.Echo VbCr WScript.Echo "Usage example: cscript //nologo nopwdexp.vbs /user:utaz" WScript.Quit End Sub '**************************************************************************