Windows напоминание смене пароля

Babochkinbox

sysadmins; programmers; modding; pc

Напоминание о смене пароля для Windows 7. VBS скрипт

Операционная система Windows 7 внесла немало изменений в работу не только пользователя, а и системного администратора. Например, напоминание о изменении пароля ненавязчивое, появляется в трее и исчезает само:

Если вспомнить Windows XP, то там ситуация была лучше: сообщение появлялось сразу после ввода пароля, предлагалось сменить пароль сейчас, загрузка не продолжалась до действия пользователя:

Чем же ситуация в Windows 7 хуже? Дело в том, что пользователь часто игнорирует всплывающую подсказку в трее, не замечает как его пароль просрочен (но компьютер, при этом, пускает пользователя без проблем), возникают проблемы с сетевой авторизацией.

Решение проблемы напоминания смены пароля в Windows 7

Официально, исправить ситуацию нельзя — Майкрософт не позаботилась о решении этой проблемы. Единственный выход — самописный скрипт.

Его (скрипта) задача посчитать строк действия пароля и в случае приближения истечения срока действия пароля (порог задается) выводить окно напоминания. Вариант подобного скрипта мне посоветовали на форуме. Он полностью отвечал требованиям, я добавил только проверку версии ОС, чтобы отрабатывалось исключительно на Windows 7.

Запускать скрипт груповой политикой (логон-скрипт). Результат работы такой:

Когда истекает пароль пользователя в AD, оповещаем пользователей о необходимости сменить пароль

В этой статье мы покажем, как с помощью PowerShell узнать, когда истекает пароль учетной записи пользователя в Active Directory, установить бессрочный пароль для учетной записи (PasswordNeverExpires = True) и заблаговременно оповестить пользователей о необходимости сменить пароль.

Если срок действия пароля пользователя в домене истек, учетная запись не блокируется, но не может использоваться для доступа к доменным ресурсам до тех пор, пока пользователь не сменит свой истекший пароль на новый. Чаще всего проблемы с истекшими паролями возникает у удаленных пользователей, которые не могут сменить свой пароль стандартными средствами.

Текущие настройки политики срока действия паролей в домене можно получить с помощью команды PowerShell

В нашем примере максимальный срок действия пароля пользователя в домене – 60 дней.

Как узнать срок действия пароля пользователя в Active Directory?

Можно узнать срок действия пароля и дату его последней смены из командной строки с помощь команды Net user:

Читайте также:  Снять экран со звуком windows

net user aaivanov /domain

Необходимые данные присутствуют в значениях:

  • Password last set — 1/21/2020 11:18:37 AM
  • Password expires — 3/21/2020 11:18:37 AM
  • Password changeable — 1/22/2020 11:18:37 AM

Для получения параметров учетных записей в AD мы будем использовать специальный модуль PowerShell для Active Directory, который позволяет получить значения различных атрибутов объектов AD (см. как установить и импортировать модуль AD PowerShell в Windows 10 и Windows Server 2012 R2/2016).

С помощью командлета Get-AdUser можно получить время последней смены пароля пользователя и проверить, установлена ли опция бессрочного пароля (PasswordNeverExpires):

get-aduser aaivanov -properties PasswordLastSet, PasswordNeverExpires, PasswordExpired |ft Name, PasswordLastSet, PasswordNeverExpires,PasswordExpired

  • PasswordLastSet — время последней смены пароля пользователя;
  • PasswordNeverExpires – возвращает значение True, если пароль пользователя никогда не устаревает;
  • PasswordExpired – если пароль пользователя устарел — возвращает True, если пароль не устарел – False;

Но как вы видите, в оснастке указана только время смены пароля. Когда истекает срок действия пароля — непонятно.

Чтобы получить не время последней смены пароля, а дату окончания его срока действия, нужно использовать специальный constructed-атрибут msDS-UserPasswordExpiryTimeComputed. Значение атрибута msDS-UserPasswordExpiryTimeComputed автоматически вычисляется на основании времени последней смены пароля и парольной политики домена

Параметр UserPasswordExpiryTimeComputed возвращает время в формате TimeStamp и для преобразования его в человеко-понятный вид я использую функцию FromFileTime:

Таким образом мы получили время истечения срока действия пароля пользователя.

Чтобы получить срок действия паролей для всех пользователей их определенного контейнера (OU) AD, можно воспользоваться таким скриптом PowerShell:

$Users = Get-ADUser -SearchBase ‘OU=Users,OU=SPB,DC=corp,DC=winitpro,DC=ru’ -filter -Properties msDS-UserPasswordExpiryTimeComputed, PasswordLastSet, CannotChangePassword
$Users | select Name, @>, PasswordLastSet

В результате появилась табличка со списком активных пользователей, сроком действия и временем последней смены пароля.

Можно вывести только список пользователей, чей пароль уже истек:

$Users = Get-ADUser -SearchBase ‘OU=Users,OU=SPB,DC=corp,DC=winitpro,DC=ru’ -filter -Properties msDS-UserPasswordExpiryTimeComputed, PasswordLastSet, CannotChangePassword
foreach($user in $Users)<
if( [datetime]::FromFileTime($user.»msDS-UserPasswordExpiryTimeComputed») -lt (Get-Date)) <
$user.Name
>
>

Отключить срок действия пароля для учетной записи

Если вам нужно сделать срок действия пароля определенной учетной записи неограниченным, нужно включить опцию Password Never Expires в свойствах пользователя в AD (это одно из битовых значений атрибута UserAccountControl).

Либо вы можете включить эту опцию через PowerShell:

Get-ADUser aaivanov | Set-ADUser -PasswordNeverExpires:$True

Можно установить флаг Password Never Expires сразу для нескольких пользователей, список которых содержится в текстовом файле:

$users=Get-Content «C:\PS\users_never_expire.txt»
Foreach ($user in $users) <
Set-ADUser $user -PasswordNeverExpires:$True
>

Можно вывести список всех пользователей, для которых отключено требование регулярной смены пароля:

Get-ADUser -filter * -properties Name, PasswordNeverExpires | where <$_.passwordNeverExpires -eq "true" >| Select-Object DistinguishedName,Name,Enabled |ft

Политика оповещения об окончании срока действия пароля

В Windows есть отдельный параметр групповой политики, позволяющий оповещать пользователей о необходимости сменить пароль.

Читайте также:  Клавиатура с логотипом windows

Политика называется Interactive logon: Prompt user to change password before expiration и находится в разделе GPO Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Security Options.

По умолчанию эту политика включена на уровне локальных настроек Windows и уведомления начинают появляться за 5 дней до истечения срока действия пароля. Вы можете изменить количество дней, в течении которых должно появляться уведомление о смене пароля.

После включения этой политики, если пароль пользователя истекает, то при входе в систему в трее будет появляться уведомление о необходимости сменить пароль.

Также вы можете использовать простой PowerShel скрипт, который автоматически вызывает диалоговое окно со предложением сменить пароль, если он истекает менее чем через 5 дней:

Add-Type -AssemblyName PresentationFramework
$curruser= Get-ADUser -Identity $env:username -Properties ‘msDS-UserPasswordExpiryTimeComputed’,’PasswordNeverExpires’
if ( -not $curruser.’PasswordNeverExpires’) <
$timediff=(new-timespan -start (get-date) -end ([datetime]::FromFileTime($curruser.»msDS-UserPasswordExpiryTimeComputed»))).Days
if ($timediff -lt 5) <
$msgBoxInput = [System.Windows.MessageBox]::Show(«Ваш пароль истекает через «+ $timediff + » дней!`nХотите сменить пароль сейчас?»,»Внимание!»,»YesNo»,»Warning»)
switch ($msgBoxInput) <
‘Yes’ <
cmd /c «explorer shell. <2559a1f2-21d7-11d4-bdaf-00c04f60b9f0>«
>
‘No’ < >
>
>
>

Если пользователь нажимает ДА, появляется диалоговое окно Windows Security, которое вы видите при нажатии Ctrl+Alt+Del или Ctrl+Alt+End (при RDP подключении).

Данный скрипт нужно поместить в автозагрузку или запускать как logon скрипт групповых политик.

PowerShell скрипт для email-уведомления об истечении срока действия пароля

Если вы хотите индивидуально рассылать пользователям письма о том, что срок действия их паролей скоро истечет, можно использовать такой PowerShell скрипт.

$Sender = «info@winitpro.ru»
$Subject = ‘Внимание! Скоро истекает срок действия Вашего пароля!’
$BodyTxt1 = ‘Срок действия Вашего пароля для’
$BodyTxt2 = ‘заканчивается через ‘
$BodyTxt3 = ‘дней. Не забудьте заранее сменить Ваш пароль. Если у вас есть вопросы, обратитесь в службу HelpDesk.’
$smtpserver =»smtp.domain.com»
$warnDays = (get-date).adddays(7)
$2Day = get-date
$Users = Get-ADUser -SearchBase ‘OU=Users,DC=corp,DC=winitpro,DC=ru’ -filter -Properties msDS-UserPasswordExpiryTimeComputed, EmailAddress, Name | select Name, @>, EmailAddress
foreach ($user in $users) <
if (($user.ExpirationDate -lt $warnDays) -and ($2Day -lt $user.ExpirationDate) ) <
$lastdays = ( $user.ExpirationDate -$2Day).days
$EmailBody = $BodyTxt1, $user.name, $BodyTxt2, $lastdays, $BodyTxt3 -join ‘ ‘
Send-MailMessage -To $user.EmailAddress -From $Sender -SmtpServer $smtpserver -Subject $Subject -Body $EmailBody
>
>

Скрипт проверяет всех активных пользователей домена с истекающими паролями. За 7 дней до истечения пароля пользователю начинают отправляться письма на email адрес, указанный в AD. Письма отправляются до тех пор, пока пароль не будет изменен или просрочен.

Данный PowerShell скрипт нужно запускать регулярно на любом компьютере/сервере домена (проще всего через Task Scheduler). Естественно, нужно на вашем SMTP сервере добавить IP адрес хоста, с которого рассылаются письма, в разрешенные отправители без аутентификации.

Как включить напоминание о смене пароля в Windows

Приветствую Вас на своем блоге!
В целях безопасности на некоторых предприятиях у каждого пользователя есть свой пароль для входа в систему и этот пароль должен меняться через определенное время на новый. И как правило он не должен повторяться с последними пяти паролями. Когда я работал на одном из таких предприятий, у меня тоже был пароль для входа в систему для работы с определенными программами.

Читайте также:  Linux encrypt root partition

Но пароль можно установить и не на корпоративный компьютер, а на личный, если вы хотите, чтобы посторонние не смогли зайти в вашу систему без вашего ведома. И если вы хотите, чтобы защита вашего компьютера была надежной, то его нужно периодически менять на новый. Так будет сложнее подобрать его злоумышленникам.
В этой статье я хочу дать совет, как включить напоминание о смене пароля в Windows, чтобы вы не забыли его вовремя изменить.

Сначала нужно отменить в настройках вашей учетной записи, неограниченный срок действия пароля. Для этого нужно открыть окно “Управление компьютером”. Сделать это можно с помощью меню “Выполнить”.

Нажмите горячие клавиши Win+R и введите команду: compmgmt.msc

Или через меню “Пуск”. Нажмите “Пуск” и зайдите в панель управления Windows.

Если у вас панель управления разбита по категориям, то нажмите пункт “Система и безопасность”.

Если по пунктам, то сразу переходите в раздел “Администрирование”.

А уже затем запускайте программу “Управление компьютером”.

Здесь перейдите в раздел “Служебные программы – Локальные пользователи и группы – Пользователи” и откройте свой профиль пользователя.

Уберите галочку с пункта “Срок действия пароля не ограничен” и сохраните результат.
Теперь можно установить срок действия пароля.
Для того, чтобы включить напоминание о смене пароля в Windows, нам нужна командная строка.

Нажмите “Пуск” и в окне поиска введите: cmd. Запустите ее от имени администратора.

Затем введите команду:

net account /maxpwage:45

45 – это количество дней, через которое нужно будет заменить пароль. Здесь укажите любой значение, если вам нужно сменить пароль через три месяца, то укажите число 90. Максимальное значение 49 710 дней, так что поле для выбора большое.

После успешного выполнения команды вы увидите такое сообщение.

Для того, чтобы отменить напоминание о смене пароля, введите такую команду:

net account /maxpwage:unlimited

Как будет подходить срок о смене пароля, система вас будет об этом предупреждать.

Как время замены пароля истечет, при загрузке Windows вы увидите такое сообщение.

Нажав кнопку “ОК”, вы сможете легко изменить пароль.

Как видите, включить напоминание о смене пароля в Windows очень легко, так что при желании, вы можете такое напоминание установить на свою систему.
Удачи!

Оцените статью