Problem
You want to require a user to change his password the next time he logs on to the domain.
Solution
Using a graphical user interface
- Open the ADUC snap-in.
- In the left pane, right-click on the domain and select Find.
- Select the appropriate domain beside In.
- Beside Name, type the name of the user you want to modify and click Find Now.
- In the Search Results window, double-click on the user.
- Click the Account tab.
- Under Account options, check the box beside “User must change password at next logon.”
- Click OK.
Using a command-line interface
You can configure the “User must change password” using either DSMod or AdMod. To modify this setting using DSMod, use the following syntax:
> dsmod user “<UserDN>” -mustchpwd yes
For AdMod, do the following:
> admod b “<UserDN>” pwdLastSet::0
Using VBScript
‘ This code sets the flag that requires a
user to change their
password
‘ —— SCRIPT CONFIGURATION ——
strUserDN = “<UserDN>” ‘ e.g. cn=rallen,ou=Sales,dc=rallencorp,dc=com
‘ —— END CONFIGURATION ——–
set objUser = GetObject(“LDAP://” & strUserDN)
objUser.Put “pwdLastSet”, 0
objUser.SetInfo
WScript.Echo “User must change password at next logon: ” & strUserDN
Discussion
When a user changes her password, a timestamp is written to the pwdLastSet attribute of the user object. When the user logs in to the domain, this timestamp is compared to the maximum password age that is defined by the Domain Security Policy to determine if the password has expired. To force a user to change her password at next logon, set the pwdLastSet attribute of the target user to zero, and verify that the user’s account doesn’t have the “password never expires” option enabled.
To disable this option so that a user does not have to change her password, set pwdLastSet to -1. These two values (0 and -1) are the only ones that can be set on the pwdLastSet attribute.