Как посмотреть срок действия пароля в windows 10

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

В этой инструкции подробно о том, как установить срок действия пароля для учетной записи Майкрософт и автономной учетной записи Windows 10 несколькими способами. Также может быть интересным: Как ограничить количество попыток ввода пароля, Как всё запретить и заблокировать в Windows 10.

  • Установка срока действия пароля локальной учетной записи
  • Настройка обязательной смены пароля учетной записи Майкрософт

Как настроить срок действия пароля для локальной учетной записи Windows 10

Установка срока действия пароля локальной учетной записи Windows 10 состоит из двух этапов. На первом требуется отключить неограниченный срок действия:

  1. Нажмите клавиши Win+R на клавиатуре, введите lusrmgr.msc и нажмите Enter.
  2. В открывшемся окне управления локальными пользователями выберите своего пользователя, нажмите по нему правой кнопкой мыши и откройте «Свойства». Свойства учетной записи в lusrmgr
  3. Снимите отметку «Срок действия пароля не ограничен» и примените настройки. Отключить неограниченный срок действия пароля

Готово. Теперь срок действия пароля существует и по умолчанию он равен 42 дням, однако вы можете изменить этот период. Если на вашем компьютере установлена Windows 10 Pro или Enterprise, можно использовать редактор локальной групповой политики:

  1. Нажмите клавиши Win+R, введите gpedit.msc и нажмите Enter.
  2. Перейдите к разделу Конфигурация компьютера — Параметры безопасности — Политики учетных записей — Политики паролей. Политики паролей Windows 10
  3. Дважды нажмите по параметру «Максимальный срок действия пароля», задайте новое значение и примените настройки. Установка срока действия пароля в gpedit

В Windows 10 Домашняя (как и в других редакциях ОС) для установки конкретного срока действия можно использовать PowerShell:

  1. Запустите Windows PowerShell от имени Администратора (это можно сделать нажав правой кнопкой мыши по кнопке «Пуск» и выбрав соответствующий пункт контекстного меню, есть и другие способы — Как запустить Windows PowerShell).
  2. Введите команду
    net accounts /maxpwage:КОЛИЧЕСТВО_ДНЕЙ

    Установка срока действия пароля в PowerShell

  3. Для того, чтобы просмотреть установленные политики паролей, включая срок действия, можно использовать команду net accounts, как на скриншоте выше.

Как ограничить срок пароля для учетной записи Майкрософт

Если вы используете учетную запись Майкрософт, вы можете включить обязательную смену пароля раз в 72 дня. Срок для такой онлайн-аккаунта не меняется. Шаги для этого будут следующими:

  1. Зайдите в параметры вашей учетной записи Майкрософт: для этого можно напрямую зайти на сайт под своей учетной записью или открыть Параметры — Учетные записи — Ваши данные — Управление учетной записью Майкрософт. Открыть управление учетной записью Майкрософт
  2. На странице управления учетной записью нажмите по «Дополнительные действия», а затем — «Изменить пароль». Изменить пароль учетной записи Майкрософт
  3. На следующем этапе задать новый пароль и установить отметку «Менять пароль через каждые 72 дня». Установить срок действия пароля учетной записи Майкрософт

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

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

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

Срок действия пароля пользователя в домене, частота его смены и требования к сложности и др. определяются настройками политикой паролей в AD. Это могут быть настройки Default Domain Policy или гранулированными политиками паролей (Fine-Grained Password Policy).

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

Get-ADDefaultDomainPasswordPolicy|select MaxPasswordAge

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

Get-ADDefaultDomainPasswordPolicy срок действия пароля в домене MaxPasswordAge

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

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

net user aaivanov /domain

net user получить срок действия пароля

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

  • 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

Get-aduser PasswordLastSet - время последней смены пароля

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

Можно проверить время последней смены пароля из графической оснастки Active Directory Users & Computers (dsa.msc). Для этого откройте свойства пользователя, перейдите на вкладку Редактор атрибутов, проверьте значение атрибута pwdLastSet.

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

pwdLastSet в свойтсвах пользователя

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

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

Get-ADUser -Identity avivanov -Properties msDS-UserPasswordExpiryTimeComputed | select-object @{Name="ExpirationDate";Expression= {[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed") }}

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

атрибут UserPasswordExpiryTimeComputed - время истечения пароля пользователя

Если значение msDS-UserPasswordExpiryTimeComputed равно 0, значит pwdLastSet пустой (null) или равен 0 (пароль пользователя никогда не менялся).

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

$Users = Get-ADUser -SearchBase 'OU=Users,OU=SPB,DC=corp,DC=winitpro,DC=ru' -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} -Properties msDS-UserPasswordExpiryTimeComputed, PasswordLastSet, CannotChangePassword
$Users | select Name, @{Name="ExpirationDate";Expression= {[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}, PasswordLastSet

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

время действия паролей пользователей в домене

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

$Users = Get-ADUser -SearchBase 'OU=Users,OU=SPB,DC=corp,DC=winitpro,DC=ru' -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} -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).

Password Never Expires

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

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

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

политика уведомления о неоходимости смены пароля Interactive logon: Prompt user to change password before expiration

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

Consider changing your password
Your password will expire in xx days.

Consider changing your password

Также вы можете использовать простой 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 = "[email protected]"
$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 {Enabled -eq $True -and PasswordNeverExpires -eq $False} -Properties msDS-UserPasswordExpiryTimeComputed, EmailAddress, Name | select Name, @{Name ="ExpirationDate";Expression= {[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}, 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 адрес хоста, с которого рассылаются письма, в разрешенные отправители без аутентификации.

  • Remove From My Forums

 locked

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

  • Вопрос

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

    Когда приближается срок завершения действия текущего пароля в области уведомлений выскакивает соответствующее сообщение, но держится оно недолго…

    Как узнать оставшийся срок действия пароля? Сколько еще дней (или до какой даты) действует текущий пароль?

    Спасибо.

    Коллеги, всем большое спасибо за ответы.

    Насколько я понял, все эти действия можно выполнить только в среде сервера.

    А может ли сам пользователь проверить срок действия своего пароля с клиентской машины?

    Спасибо.

    • Изменено

      6 февраля 2015 г. 8:02

Ответы

  • get-aduser -filter * -Properties PasswordLastSet| select Samaccountname,PasswordLastSet | foreach {"For user $($_.samaccountname) Password has Expiered $($_.PasswordLastSet.addmonths(3).ToShortDateString())"}

    На КД можно выполнить что то по типу этого и увидеть когда и у кого заканчивается пароль

    • Предложено в качестве ответа
      Dmitriy VereshchakMicrosoft contingent staff
      6 февраля 2015 г. 7:36
    • Помечено в качестве ответа
      Dmitriy VereshchakMicrosoft contingent staff
      6 февраля 2015 г. 7:36

  • Get-ADUser -SearchBase «ou=какой-то_ou,dc=domain,dc=local» -f ‘*’ -Properties passwordlastset | foreach {write-host ‘пароль пользователя’ ($_.name) ‘истечет’ ($_.passwordlastset).Adddays(90)}

    Найдет всех пользователей из указанного контейнера и покажет через сколько истечет пароль (добавив 90 дней, если нужно — цифру меням).

    P.S. оп, слоупок!

    • Изменено
      Копылов Анатолий
      4 февраля 2015 г. 10:08
    • Предложено в качестве ответа
      Bandurist
      5 февраля 2015 г. 8:24
    • Помечено в качестве ответа
      Dmitriy VereshchakMicrosoft contingent staff
      6 февраля 2015 г. 7:35

  • net user ИмяПользователя
     но это cmd

    • Изменено
      Kirill Vakhrushev
      5 февраля 2015 г. 10:01
    • Предложено в качестве ответа
      Dmitriy VereshchakMicrosoft contingent staff
      6 февраля 2015 г. 7:35
    • Помечено в качестве ответа
      Dmitriy VereshchakMicrosoft contingent staff
      6 февраля 2015 г. 7:35

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

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

Начнем с классической командной строки.

Откройте последнюю с правами администратора и выполните команду:

net user username

Где username – имя проверяемого пользователя.

Отыщите в списке полученных данных параметры «Последний пароль задан» и «Пароль допускает изменение», они как раз и содержат дату и время последнего изменения пароля.

Net user

Обратите также внимание на параметр «Пользователь может изменить пароль», если указано «No», данный пользователь к изменению пароля не имеет отношения.

Если компьютер находится в доменной сети, в конец команды нужно добавить ключ “/domain”, вот так:

net user username /domain

Для определения имя домена используем команду:

echo %domain%

Domain

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

Кроме того, если вы не используете серверную версию Windows, сначала вам нужно будет установить модуль Rsar, выполнив в PowerShell команду:

Add-WindowsCapability –online –Name “Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0”

Add-WindowsCapability

Установив модуль, для получения даты последней смены пароля выполняем команду:

Get-ADUser –Identity username -Properties passwordlastset

Где username – имя пользователя.

Либо:

Get-ADUser -Filter * -Properties PasswordLastSet | ft Name,SamAccountName,PasswordLastSet

Если нужно вывести сведения обо всех пользователях в Active Directory.

Интересующие вас дата и время будут указаны в строке «PasswordLastSet».

PasswordLastSet

Загрузка…

Download Windows Speedup Tool to fix errors and make PC run faster

Knowing when you changed your Windows password is helpful. Maybe, you have a habit of changing your password occasionally to keep your PC secure. Or maybe your PC is used by multiple users, and you are worried that someone has changed the password. The reasons could be many, but the question is how to check the last Password change. Well, it is a relatively straightforward process with the help of commands on CMD or Windows Terminal, or PowerShell.

There are two ways to find out the previous password:

  • CMD or Windows Terminal
  • PowerShell

Since it is related to your account, you don’t need an administrator account.

1] Using CMD

How to check Last Password Change in CMD or PowerShell

Checking the last password change using CMD has to be the easiest method as It offers you the Net user command. The commandlet allows you to manage user accounts and groups. Using this method, you can check your last password change and any other users on your PC (with an admin account)

  • Open Command Prompt
  • On the command prompt, run the following command (make sure to replace %username% with the respective username):
net user %username%
  • Once done, the CMD should display the date as Password last set
  • Alternatively, if you have logged onto a domain-joined PC, then you can check for the last password change using the following command:
net user %username% /domain
  • Make sure to change %username% and domain to their respective details.

2] Using PowerShell

PowerShell is the only solution to check your last password change on a Windows server. However, the Windows server requires you to have the Get-AdUser cmdlet from the Active Directory module installed.

Without installing the cmdlet, you would encounter an error. You can install the cmdlet by running the following command on PowerShell:

Install-WindowsFeature RSAT-AD-PowerShell

Note: The above command only applies to the Windows Server operating systems. Suppose you are using a client operating system such as Windows 10 or 11; in that case, you need to install the Remote Server Administration Tools for Windows 10 (RSAT) and then enable the Active Directory Lightweight Directory Services module in the “Turn Windows features on or off” dialog box.

Enable the Active Directory Lightweight Directory Services Module

Once you have the cmdlet installed, run the following command to check your last password change using PowerShell:

Get-ADUser -Identity %username% -Properties PasswordLastSet | Select-Object Name, PasswordLastSet

Make sure to change the username to the respective server username.

Conclusion

So those were two quick ways to check the last password change in a Windows or Server OS. If you are using a PC, going with a CMD command is ideal and easy. But for server users, the PowerShell command should work just fine.

How do I find my password change history?

If you are using Active Directory, you can enable the auditing for password changes. It is available at Default Domain Policy > Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > Audit Policy: Audit account management. Check both Success and Failure. Next, you can set Event Viewer to accommodate all the password changes.

Where does Windows store password history?

Like any other password manager, Windows does not store passwords; it stores hashes, which are not humanly readable. Windows stores hashes of all passwords and is stored in the local Security Accounts Manager (SAM) database in Active Directory.

Ashish holds a Bachelor’s in Computer Engineering and is a veteran Windows and Xbox user. He has work experience as a Database and Microsoft.NET Developer. He has been a Microsoft MVP (2008-2010) and excels in writing tutorials to improve the day-to-day experience with your devices.

  • Как посмотреть температуру ssd m2 windows 10
  • Как посмотреть срок действия лицензии windows 10
  • Как посмотреть сколько разрядная система на windows 10
  • Как посмотреть содержимое файла в командной строке windows
  • Как посмотреть сколько циклов зарядки на ноутбуке windows