none
Password Notification with window 7

    Question

  • With windows XP the users receive a prompt when they logged on letting them know that their password is about to expire.  With Windows 7 all they see is the "Consider Changing Your Password" notification the notification area.  Then if you click on the icon or balloon the icon disappears from the notification area until next logon.  I am afraid that this will not be enough of a notification for our users.  I would like to see the Logon Message that appears on windows XP to appear on windows 7.  I have set the interactive logon: prompt user to change password before expiration to 14 days. Additionally, I have Always wait for the network at computer startup and logon enabled.  What can I do to either get the prompt back or have the balloon stay open until they close it (drawing their attention to it) and have the change password window open when they do click on that icon in the notification area.
    Friday, November 06, 2009 8:08 PM

All replies

  • I'm also looking for a solution to this post
    Friday, February 05, 2010 9:30 PM
  • I had the same issue.  I was able to reproduce it, if I had the UAC turned off.  When it was turned on, the notification would work.  Then I called MS Support and it started working correctly whether UAC was turned on or off.  Either way, I put together a VBS script that goes in to your GPO that displays a popup window telling the user their password expires in # days and that the user MUST click OK to dismiss.

    It goes in the GPO - User Config - Policies - Admin Templates - System - Logon - Run these programs at user logon.  You will also need to add the folder location to IE Trusted Sites to avoid having a popup asking if it should run the script.

    PwExpChk.vbs

        '========================================
        ' First, get the domain policy.
        '========================================
        Dim oDomain
        Dim oUser
        Dim maxPwdAge
        Dim numDays
        Dim warningDays

        warningDays = 6
      
        Set LoginInfo = CreateObject("ADSystemInfo") 
        Set objUser = GetObject("LDAP://" & LoginInfo.UserName & "") 
        strDomainDN = UCase(LoginInfo.DomainDNSName)
        strUserDN = LoginInfo.UserName

       
        Set oDomain = GetObject("LDAP://" & strDomainDN)
        Set maxPwdAge = oDomain.Get("maxPwdAge")

        '========================================
        ' Calculate the number of days that are
        ' held in this value.
        '========================================
        numDays = CCur((maxPwdAge.HighPart * 2 ^ 32) + _
                        maxPwdAge.LowPart) / CCur(-864000000000)
        'WScript.Echo "Maximum Password Age: " & numDays
       
        '========================================
        ' Determine the last time that the user
        ' changed his or her password.
        '========================================
        Set oUser = GetObject("LDAP://" & strUserDN)

        '========================================
        ' Add the number of days to the last time
        ' the password was set.
        '========================================
        whenPasswordExpires = DateAdd("d", numDays, oUser.PasswordLastChanged)
        fromDate = Date
        daysLeft = DateDiff("d",fromDate,whenPasswordExpires)
       
        'WScript.Echo "Password Last Changed: " & oUser.PasswordLastChanged

        if (daysLeft < warningDays) and (daysLeft > -1) then
            Msgbox "Password Expires in " & daysLeft & " day(s)" & " at " & whenPasswordExpires & chr(13) & chr(13) & "Once logged in, press CTRL-ALT-DEL and" & chr(13) & "select the 'Change a password' option", 0, "PASSWORD EXPIRATION WARNING!"
        End if

        '========================================
        ' Clean up.
        '========================================
        Set oUser = Nothing
        Set maxPwdAge = Nothing
        Set oDomain = Nothing

    Friday, July 09, 2010 12:20 AM
  • To get more helpful info, u can search the method source:

    Windows 7 Password Recovery | Methods and Tools to Recover Windows 7 Password

    And have a try. Follow my steps:
    >>1. Download Windows Password Recovery Tool 3.0

    >> 2. Burn your Windows Password Recovery Tool CD.To burn your CD, you'll need a blank CD-R and the .ISO file of Password recovery

    >>3. Put in your newly created CD and remove your Windows password.

    Hope it can help.
    Tuesday, March 20, 2012 4:23 AM
  • This is an old post, but I finally updated my script to take in to consideration non-expiring passwords.


        '==========================================
        ' Check for password expiring notification
        '==========================================
        ' First, get the domain policy.
        '==========================================
        Dim oDomain
        Dim oUser
        Dim maxPwdAge
        Dim numDays
        Dim warningDays

        warningDays = 6
      
        Set LoginInfo = CreateObject("ADSystemInfo") 
        Set objUser = GetObject("LDAP://" & LoginInfo.UserName & "") 
        strDomainDN = UCase(LoginInfo.DomainDNSName)
        strUserDN = LoginInfo.UserName

        '========================================
        ' Check if password is non-expiring.
        '========================================
        Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000
        intUserAccountControl = objUser.Get("userAccountControl")
        If intUserAccountControl And ADS_UF_DONT_EXPIRE_PASSWD Then
            'WScript.Echo "The password does not expire."
        Else
       
            Set oDomain = GetObject("LDAP://" & strDomainDN)
            Set maxPwdAge = oDomain.Get("maxPwdAge")

            '========================================
            ' Calculate the number of days that are
            ' held in this value.
            '========================================
            numDays = CCur((maxPwdAge.HighPart * 2 ^ 32) + _
                            maxPwdAge.LowPart) / CCur(-864000000000)
            'WScript.Echo "Maximum Password Age: " & numDays
       
            '========================================
            ' Determine the last time that the user
            ' changed his or her password.
            '========================================
            Set oUser = GetObject("LDAP://" & strUserDN)

            '========================================
            ' Add the number of days to the last time
            ' the password was set.
            '========================================
            whenPasswordExpires = DateAdd("d", numDays, oUser.PasswordLastChanged)
            fromDate = Date
            daysLeft = DateDiff("d",fromDate,whenPasswordExpires)
       
            'WScript.Echo "Password Last Changed: " & oUser.PasswordLastChanged

            if (daysLeft < warningDays) and (daysLeft > -1) then
                Msgbox "Password Expires in " & daysLeft & " day(s)" & " at " & whenPasswordExpires & chr(13) & chr(13) & "Once logged in, press CTRL-ALT-DEL and" & chr(13) & "select the 'Change a password' option", 0, "PASSWORD EXPIRATION WARNING!"
            End if

        End if

        '========================================
        ' Clean up.
        '========================================
        Set oUser = Nothing
        Set maxPwdAge = Nothing
        Set oDomain = Nothing

    • Proposed as answer by Mark-K Thursday, March 22, 2012 8:03 PM
    Thursday, March 22, 2012 8:03 PM
  • See my updated post on Win7 password expiration notification.
    Thursday, March 22, 2012 8:04 PM
  • Getting this error when using this script, can anyone assist?

    Tuesday, March 25, 2014 9:51 PM
  • Hi Mark.  I realize this is an old post but is it possible to when the "OK" button is pressed, it calls up the CTRL+ALT+DEL change password screen? or a Button on the popup that says "Change Password".  If it is possible that would be great I just need to figure out how.  My extent of VBS is modifying existing scripts from other people like yourself.  If it can be done I will try and find some information on it.  Thanks!
    • Edited by RumpSauce Thursday, April 02, 2015 8:31 PM
    Thursday, April 02, 2015 8:30 PM