Изменить срок действия пароля windows server 2016

Поведение при истечении срока действия пароля учетной записи администратора

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

Исходная версия продукта: Windows Server 2012 R2
Исходный номер КБ: 2837704

Аннотация

Срок действия пароля учетной записи локального администратора (RID -500) на рядовом сервере истек, и вам не будет предложено изменить пароль на экране логотипа. Вы можете войти в систему и получить доступ к консоли. В свойствах учетной записи администратора проверяется параметр «Пользователь должен изменить пароль при следующем учетном записи». После входа вы можете увидеть всплывающее всплывающее сообщение «Рассмотрите возможность изменения пароля» время от времени.

В свойствах учетной записи локального администратора, если вы вручную отменить параметр «Пользователь должен изменить пароль при следующем входе в систему», нажмите кнопку «ОК», выполните выход, а затем войдите в систему, вы заметите, что в свойствах пользователя снова установлен этот параметр. The checkbox for the setting «User must change the password at next logon» will be checked «regardless until the password is in fact changed using CTRL+ALT+DEL -> Change Password while logged on.

Обычной учетной записи, созданной вручную и добавленной в локалную группу администраторов с просроченным паролем, фактически будет предложено изменить пароль на экране входов, прежде чем получить доступ к консоли.

Дополнительные сведения

Это поведение предполагается, что администратор может войти в систему с помощью учетной записи -500 RID (также известной как администратор) для выполнения задач по устранению неполадок, даже если срок действия пароля истек. По истечении срока действия паролей другие учетные записи не могут входить в систему из соображений безопасности.

Всем другим учетным записям с просроченным паролем, которые являются членами группыадминистраторов или встроенных локальных групп или имеют право «Разрешить вход в систему локально», не разрешается входить в систему и им приходится менять пароль на экране входа перед получением доступа к консоли.

Такое же поведение допустимо для учетной записи администратора домена (-500 RID) в Active Directory при входе в контроллеры домена.

Изменение пароля учетной записи Windows Server 2016

Смена пароля

В данном руководстве будет рассмотрена процедура изменения пароля в операционной системе Windows Server 2016.

Для того чтобы изменить пароль в своей учетной записи Администратора нажмите «Пуск» и на кнопку Параметры

В окне Параметры выберите «Учетные записи» , далее «Параметры входа» и в параметре Пароль нажмите «Изменить»

Читайте также:  Smcfancontrol ��� mac os

Откроется окно изменения пароля, введите текущий пароль и «Далее»

Далее в окне «Изменение пароля»

  • 1. Введите новый пароль (не меньше 8 символов и латинскими буквами ) в строке «Введите пароль еще раз» — введите новый пароль ещё раз
  • 2. Сохраните изменения кнопкой «Далее»

Таким образом Вы сменили пароль на текущую учетную запись, теперь мы рассмотрим функцию «Срок истечения пароля»

Срок истечения пароля

На сервере функция «Срок истечения пароля» по умолчанию установлена в 42 дня, это говорит о том что через каждые 42 дня Ваша система будет требовать смены пароля.
Где изменить или отключить эту функцию мы рассмотрим ниже

Нажмите «Пуск» далее «Средства администрирования»

Сейчас мы рассмотрим изменение срока пароля на сервере без домена (Active Directory)
Поэтому, открываем окно «Локальная политика безопасности»

В окне «Локальная политика безопасности» слева нажмите на стрелку «Политика учетных записей» далее на папку «Политика паролей»,
Затем справа откройте запись «Максимальный срок действия пароля 42 дн.»

В открывшемся окне в значении «Срок истечения действия пароля» введите 0 или нужное Вам значение
Значение «0» — говорит системе о том что — функция «Срок истечения действия пароля» — отключена.
В таком режиме срок действия пароля — бесконечный.

Windows Server: Отключение срока действия пароля

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

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

Отключить данную настройку можно следующим образом:

Открываем Выполнить (Пуск — Выполнить или Win+R), после чего набираем gpedit.msc и жмем ОК.

В левой панели переходим в Конфигурация компьютера — Конфигурация windows — Параметры безопасности — Политики учетных записей — Политика паролей. Ищем пункт «Максимальный срок действия пароля». По умолчанию он равен 42 дням — ровно через столько, после установки нового пароля система сообщит вам о том, что ваш пароль устарел и его необходимо сменить.


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

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

В отличии от предыдущего способа, где речь шла про редактирование локальных групповых политик, здесь нужно отредактировать групповые политики домена Active Directory. Для этого нужно удаленно зайти на сервер контроллера домена, открыть окно «Выполнить» и набрать там команду gpmc.msc , после чего нажать кнопку «ОК».

Откроется окно Управление групповой политикой. В нем находим нужную политику (по умолчанию — Default Domain Policy), и нажимаем на ней правой кнопкой мыши — и в появившемся контекстном меню выбираем «Изменить».

Откроется обычное окно редактирования групповых политик — где нужно совершить действия, описанные главой выше.

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

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

Читайте также:  Как посмотреть имя администратора windows

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

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

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

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

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

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:

Читайте также:  Управление политикой безопасности windows

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 есть отдельный параметр групповой политики, позволяющий оповещать пользователей о необходимости сменить пароль.

Политика называется 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 адрес хоста, с которого рассылаются письма, в разрешенные отправители без аутентификации.

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