PDA

Показать полную графическую версию : Предупреждение о смене пароля


Odisseus
24-06-2014, 14:17
Есть домен на W2K8 R2. Пoлитика паролей предусматривает смену чераз каждие три месяца. Но естественно, об этом никто не помнит и когда пароли подходят к концу машины лочатся, доступ к сети закрывается, в общем, для юзеров наступает армагеддец. Так вот, вопрос. Можно ли создать навязчивое предупреждение о смене пароля? В виде окна, которое появляется за несколько дней до смены пароля и потом периодически открывается, если юзер его просто закрыл и не изменил пароль?

cameron
24-06-2014, 15:57
В виде окна, которое появляется за несколько дней до смены пароля и потом периодически открывается, если юзер его просто закрыл и не изменил пароль? »
оно и так штатно появляется.
кол-во дней регламентируется ГП.

Odisseus
29-06-2014, 10:53
оно и так штатно появляется »
Согласен, если компы выключаются или перезагружаются, то появляется опция смены пароля, если он уже истек. Но у меня они работают 24/7 в силу особенностей предприятия. Да и сообщение - это baloon tip из трея, которое пропадает через секунду. Так вот, нужно что-то вроде Profile storage space утилиты или скрипта, который будет проверять периодически пароль и громко кричать, когда он будет заканчиватся. Клиентские системы - Win7 x64 SP1

Iska
29-06-2014, 12:00
Но у меня они работают 24/7 в силу особенностей предприятия. »
Правильно ли я Вас понимаю, что у Вас пользователи фактически вводят пароль только лишь дважды за период в три месяца, при требовании смены пароля: раз в начале периода и раз в конце — перед вводом нового? Если так, то чем Вам поможет уведомление?

Odisseus
29-06-2014, 13:20
Правильно ли я Вас понимаю »
Не совсем, но условно можно считать и так. А нужно вот зачем. К примеру, юзер залогинен и не будет выключать или перезагружать машину следующие 7 дней. Его пароль истекает сегодня в 12-00, но он об этом естественно не знает, потому что когда он залогинился, то предупреждения о смене пароля не получил, потому что пароль был все еще активен на момент логина. Сегодня в 12-01 его пароль истек в процессе работы. Доступ к сетевым ресурсам закрылся, все сетевые приложения отказали, Outlook не принимает ничего с Exchange и тд. Юзер в истерике, бьется головой о стены, рвет на себе волосы (да, они у меня нервные...), звонит и орет на айтишника и тд и тп. Мне приходится сбрасывать пароль, но в силу редкой репликации он не будет работать еще с полчаса. Так вот, эта ситуация меня достала уже вкрай. Учитывая, как хорошо работает утилька проверки Profile Storage Space и какие сообщения она выдает, я хочу сделать подобное относительно пароля. То есть, проверять, когда был последний раз изменен пароль и сколько времени осталось до конца 3-месячного периода. Как-то так...

cameron
29-06-2014, 13:26
Его пароль истекает сегодня в 12-00, но он об этом естественно не знает, потому что когда он залогинился, то предупреждения о смене пароля не получил, потому что пароль был все еще активен на момент логина. Сегодня в 12-01 его пароль истек в процессе работы. »
и каждый день, из тех, которые указаны в ГПО как "уведомлять за кол-во дней до смены пароля" пользователь получает уведомление в трее.
Если пользователь баран - то и ваше уведомление ничем не поможет.
Предполагаю, что бдет проще реализовать скрипт на пош отправляющий почту с напоминанием.

Odisseus
29-06-2014, 19:48
уведомление в трее »
Есть такое, но оно само закрывается через секунду после появления

Предполагаю, что бдет проще реализовать скрипт на пош отправляющий почту с напоминанием. »
Тоже отличный вариант! Осталось придумать как это сделать...

Odisseus
04-07-2014, 20:49
Какие будут идеи, народ?

clevergod
23-09-2014, 12:16
Odisseus
Гугел все давно придумал (http://www.rublin.org/content/napominanie-o-smene-parolya-dlya-windows-7-vbs-skript)

Odisseus
24-09-2014, 09:10
Гугел все давно придумал »
А вот за это отдельное спасибо! Как говорится, одна голова хорошо, а много - лучше.
Но надо прояснить по скрипту кое-что. Итак, весь скрипт тут:
strComputer = "."
REM ========================================
REM Проверка версии операционной системы.
REM Если Windows 7, то действуем дальше
REM ========================================
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
Select Case Left(objOperatingSystem.Caption,19)
Case "Microsoft Windows 7"

REM ========================================
REM Доменные политики и количество дней
REM ========================================
Dim oDomain
Dim oUser
Dim maxPwdAge
Dim numDays
Dim warningDays
warningDays = 15 ' порог срабатывания уведомления

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")

REM ========================================
REM Считаем сколько дней осталось
REM ========================================
numDays = CCur((maxPwdAge.HighPart * 2 ^ 32) + _
maxPwdAge.LowPart) / CCur(-864000000000)
REM WScript.Echo "Maximum Password Age: " & numDays ' это для дэбага

REM ========================================
REM Определяем когда менялся пароль
REM ========================================
Set oUser = GetObject("LDAP://" & strUserDN)
whenPasswordExpires = DateAdd("d", numDays, oUser.PasswordLastChanged)
fromDate = Date
daysLeft = DateDiff("d",fromDate,whenPasswordExpires)

REM WScript.Echo "Password Last Changed: " & oUser.PasswordLastChanged
if (daysLeft < warningDays) and (daysLeft > -1) then
Msgbox "Число дней до истечения срока действия пароля: " & daysLeft & "." & chr(13) & "Пароль действительный до " & whenPasswordExpires & chr(13) & chr(13) & "Чтобы изменить пароль, нажмите клавиши " & chr(13) & "CTRL+ALT+DEL и выберите 'Сменить пароль...'", 0, "Рекомендуется изменить ваш пароль"
End if

REM ========================================
REM Конец проверки версии ОС
REM ========================================
End Select
Next
REM ========================================
REM Зачистка
REM ========================================
Set oUser = Nothing
Set maxPwdAge = Nothing
Set oDomain = Nothing

Для того, чтобы он работал в моем домене, надо изменить
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")

Или он просто будет опираться на существующий домен и прописывать его не надо?

Предполагаю, что бдет проще реализовать скрипт на пош отправляющий почту с напоминанием. »
Такой вариант уже есть и работает, спасибо за наводку! Хочется иметь дублирующее напоминание.




© OSzone.net 2001-2012