Sem nenhuma notificação de expiração de senha no logon no Windows 7, como você está configurando a notificação de expiração de senha?

5

No meu entender, os usuários do Windows 7 não recebem notificação de expiração de senha durante o processo de logon - ela ocorre estritamente na bandeja do sistema.

Atualmente, temos notificações de balão de bandeja desativadas para diminuir a distração do usuário, e espero que o processo de alteração de senha seja mais suave durante o processo de logon do que em uma sessão existente. Como resultado, os usuários serão solicitados a alterar suas senhas no vencimento.

Os usuários também se conectam às caixas de serviços de terminal, mas recebem a notificação avançada para a expiração da senha. Portanto, o Windows 7 não está notificando, mas as caixas TS / RDS e XP são. Alguma orientação sobre como configurar isso? Pessoalmente, eu desativaria todos os avisos de expiração, mas entendo que a maioria dos usuários preferiria ver a notificação. Pensamentos? Qualquer GPO ou outras configurações que eu possa estar negligenciando? A configuração de logon interativo abaixo já está habilitada para o GPO da estação de trabalho Win7. Meu pensamento é que as notificações em balão serão ativadas novamente no Windows 7, mas eu queria ver se alguém estava ciente das alternativas. Obrigado.

Configuração do Computador \ Configurações do Windows \ Configurações de Segurança \ Políticas Locais - Opções de Segurança

Logon interativo: avisar ao usuário para alterar a senha antes da expiração

    
por masegaloeh 11.05.2010 / 21:41

2 respostas

8

Isso soa como uma daquelas situações em que você faz uma escolha de configuração perfeitamente sensata (desative as notificações de balão para melhorar a experiência do usuário). Então surge algo que entra em conflito com essa decisão. Nesse ponto, você pode falsificar um compromisso (e geralmente acaba com uma grande bagunça, ou algo absurdamente complicado em relação ao tamanho real do problema). Alternativamente, retorne sua mudança. Na maioria dos casos, acho que é melhor aproveitar a experiência de aprendizado e sair da decisão anterior.

tl; dr reativar notificações em balão.

    
por 09.07.2010 / 03:39
7

Este é um post antigo, mas finalmente atualizei o script para detectar e não responder a senhas que não expiram.

'==========================================
' 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

Esta foi a resposta original & roteiro

Um script VBS que entra no seu GPO que exibe uma janela pop-up informando ao usuário sua senha expira em # dias e que o usuário DEVE clicar em OK para dispensar.

Ele vai no GPO - Configuração do usuário - Políticas - Modelos de administração - Sistema - Logon - Execute esses programas no logon do usuário. Você também precisará adicionar o local da pasta aos Sites Confiáveis do IE para evitar ter um popup perguntando se ele deve executar o 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
    
por 22.03.2012 / 20:57