Проверьте дату изменения последнего пароля рекламного пользователя с помощью power shell

In this article:

Let’s dive right in.

  1. Using the Native Method (PowerShell Script)
  2. Using the Lepide Active Directory Auditor

Anuraag Singh


9 Minutes Reading

Table of Contents

Here in this write-up, we provide you not one or two but three separate methods for the same. But before we see what the methods are, let’s check the reasons for finding the password expiration date.

В этой статье мы покажем, как отслеживать события блокировки учетных записей пользователей на котроллерах домена Active Directory, определять с какого компьютера и из какой конкретно программы постоянно блокируется учетная запись. Для поиска источника блокировки аккаунтов пользователей можно использовать журнал безопасности Windows, скрипты PowerShell или утилиту Account Lockout and Management Tools (Lockoutstatus.exe).

1. Launch the Active Directory Administrative Center

active-directory-administrative-centre-global-search

3. Locate the pwdLastSet Attribute

Locate the PwdLastSet Attribute

4. Set the ‘pwdLastSet’ attribute to 0

Double-click on the ‘pwdLastSet’ attribute to open it, and set the value to ‘0’. Then, click ‘OK’ and ‘Apply’ to save the changes. The ‘pwdLastSet’ attribute will now be displayed as ‘never’

Set the 'pwdLastSet' attribute to 0

5. Set the ‘pwdLastSet’ attribute to -1

Reopen the ‘pwdLastSet’ attribute and set it to ‘-1’. Then, click ‘OK’ and ‘Apply’ to save the changes.

Set the ‘pwdLastSet’ attribute to -1

Trying to pull some information from AD through Powershell, Specifically:
samaccountname
First Name
Last Name
Last Logon Date
Password Last Set
Enabled
Password Policy applied

get-adgroupmember  <Group> -Recursive | %  {get-aduser $_ -properties *}| select samaccountname,givenname,surname,lastlogondate,@{Name='PwdLastSet';Expression={[DateTime]::FromFileTime($_.PwdLastSet)}},enabled,@{name="MemberOf"; Expression={  $(Get-ADUserResultantPasswordPolicy $_) | select  (@{Expression={ ($_.AppliesTo|%{$_.split(',')[0].substring(3)}) }})}} | OGV 

This command actually pulls all of the requested information

samaccountname givenname  surname lastlogondate        PwdLastSet            enabled MemberOf                                        
-------------- ---------  ------- -------------        ----------            ------- --------                                        
<Account>          <First>     <Last>               <Date> <Date> True       @{ ($_.AppliesTo|%{$_.split(',')[0].substring(3)}) =<Applies to Group>}          

Не секрет, что начиная с первой версии PowerShell, Microsoft пытается сделать из него основной инструмент администрирования Windows. И во многом это получается! Сегодня на простых примерах, мы покажем возможности PowerShell, которые можно использовать для получения различной информации о пользователях Active Directory и их атрибутах.

Примечание. Ранее для получения информации об атрибутах учетных записей пользователей AD приходилось использовать различные инструменты: консоль ADUC (в том числе сохраненные запросы AD), vbs скрипты, утилиту dsquery и т.п. Выбор инструмента обычно основывался на поставленной задачи и способностях администратора в программировании.

Запускаем окно Powershll с правами администратора и импортируем модуль Active Directory командой:

Import-Module activedirectory

Совет. В Windows Server 2012 и выше этот пункт можно пропустить, так как модуль PowerShell Active Directory подключен по-умолчанию.

RSAT включить модуль Active Directory Module for Windows PowerShell

help Get-ADUser

Чтобы вывести список всех учетных записей домена, выполним команду:

Get-ADUser -filter *

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

Get-ADUser -filter * - вывести список всех пользователей в ADФормат возвращаемого списка не очень удобен для использования, выводится только некоторые основные 10 из более 120 атрибутов и свойств учетных записей пользователей (DN, SamAccountName, Name, SID, UPN и т.д) кроме того, мы видим, что информация о времени последней смены пароля отсутствует.

Get-ADUser -identity tuser -properties *
  • PasswordExpired
  • PasswordLastSet
  • PasswordNeverExpires
Get-ADUser tuser -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires

Get-ADUse - время смены и истечения срока действия пароля в ADТеперь в данных пользователя есть информация о дате смены пароля и времени, когда срок пароля истечет. Представим информацию в более удобном табличном виде:

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires

Get-ADUser - табличное преставление о свойствах пользователейЧтобы вывести данные пользователей из определенной OU, воспользуемся параметром SearchBase:

Get-ADUser -SearchBase ‘OU=Moscow,DC=winitpro,DC=loc’ -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires

Результат выполнения команды можно выгрузить в текстовый файл:

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires > C:\temp\users.txt

Или в CSV, который в дальнейшем будет удобно экспортировать в Excel (дополнительно с помощью sort-object отсортируем таблицу по столбцу PasswordLastSet , а также добавим условие where – имя пользователя должно содержать строку «Dmitry»):

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | where {$_.name –like “*Dmitry*”} | sort-object PasswordLastSet | select-object Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires | Export-csv -path c:\temp\user-password-expires-2015.csv

Get-ADUser с условием where и сохранением в csv

Таким образом, можно построить таблицу с любыми необходимыми атрибутами пользователей Active Directory.

Совет.  Для получения данных о компьютерах Active Directory используется командлет Get-ADComputer.

Далее приведем еще несколько полезных вариантов запросов о пользователях Active Directory с помощью различных фильтров. Вы можете их комбинировать для получения необходимого списка пользователей AD:

Вывод пользователей AD, имя которых начинается с Roman:

Get-ADUser -filter {name -like "Roman*"}

Чтобы подсчитать общее количество всех аккаунтов в Active Directory:

Get-ADUser -Filter {SamAccountName -like "*"} | Measure-Object

Список всех активных (не заблокированных) учетных записей в AD:

Get-ADUser -Filter {Enabled -eq "True"} | Select-Object SamAccountName,Name,Surname,GivenName | Format-Table

Список учетных записей с истекшим сроком действия пароля:

Get-ADUser -filter {Enabled -eq $True} -properties passwordExpired | where {$_.PasswordExpired}

Список активных учеток с почтовыми адресами:

Get-ADUser -Filter {(mail -ne "null") -and (Enabled -eq "true")} -Properties Surname,GivenName,mail | Select-Object Name,Surname,GivenName,mail | Format-Table

Задача: для списка учетных записей, которые хранятся в текстовом файле (по одной учетке в строке) нужно получить телефон пользователя в AD и выгрузить информацию в текстовый csv файл (можно легко импортировать в Esxel).

Import-Csv c:\ps\usernsme_list.csv | ForEach {
Get-ADUser -identity $_.user -Properties Name, telephoneNumber |
Select Name, telephoneNumber |
Export-CSV c:\ps\export_ad_list.csv -Append -Encoding UTF8
}

Следующий пример позволяет выгрузить адресную книгу предприятия в виде csv файла, который в дальнейшем можно импортировать в Outlook или Mozilla Thunderbird:

Get-ADUser -Filter {(mail -ne "null") -and (Enabled -eq "true")} -Properties Surname,GivenName,mail | Select-Object Name,Surname,GivenName,mail | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $env:temp\mail_list.csv

Пользователи, которые не меняли свой пароль в течении последних 90 дней:

$90_Days = (Get-Date).adddays(-90)
Get-ADUser -filter {(passwordlastset -le $90_days)}

Чтобы получить фотографию пользователя из Active Directory и сохранить ее в jpg файл:

$user = Get-ADUser winadmin -Properties thumbnailPhoto
$user.thumbnailPhoto | Set-Content winadmin.jpg -Encoding byte

Список групп, в которых состоит учетная запись пользователя

Get-AdUser winadmin -Properties memberof | Select memberof -expandproperty memberof

Option 2. Get Last Password Change Date with the AD Pro Toolkit

password last set with the ad pro toolkit
password last set report example
create a schedule

Get Password Last Set Date for Users From Specific Organizational Unit (OU)

Get-ADUser -SearchBase "OU=Accounting,OU=ADPRO Users,DC=ad,DC=activedirectorypro,DC=com" -properties PwdLastSet  | sort Name | ft Name,@{Name='PwdLastSet';Expression={[DateTime]::FromFileTime($_.PwdLastSet)}}

With the AD Pro Toolkit just click browse and select one or multiple OUs.

:/>  2 сетевые карты win xp
select an ou

You Might Also Like:

События блокировки пользователей EventID 4740, 4625

В первую очередь администратору нужно разобраться с какого компьютера/сервера домена происходят попытки ввода неверных паролей и идет дальнейшая блокировка учетной записи.
Чтобы в журналах контроллеров домена записывались события блокировки учетных записей, нужно включить следующие подкатегории аудита на контроллерах домена в секции Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Advanced Audit Policy -> Logon/Logoff:

  • Audit Account Lockout
  • Audit Logon
  • Audit Logoff

Затем перейдите в раздел Account Management и включите политику:

  • Audit User Account Management: Success

Проще всего включить эти параметры GPO через консоль
gpmc.msc
, отредактировав политику Default Domain Controller Policy.

политика аудита событий блокировки на контроллерах домена Audit Account Lockout

Если пользователь ввел неверный пароль, то ближайший к пользователю контроллер домена перенаправляет запрос аутентификации на DC с FSMO ролью эмулятора PDC (именно он отвечает за обработку блокировок учетных записей). Если проверка подлинности не выполнилась и на PDC, он отвечает первому DC о невозможности аутентификации. Если количество неуспешных аутентификаций превысило значение, заданное для домена в политике Account lockout threshold, учетная запись пользователя временно блокируется.

При этом в журнале обоих контроллеров домена фиксируются событие с EventID 4740 с указанием DNS имени (IP адреса) компьютера, с которого пришел первоначальный запрос на авторизацию пользователя. Чтобы не анализировать журналы на всех DC, проще всего искать это события в журнале безопасности на PDC контроллере. Найти PDC в домене можно так:

Примечание. В большой инфраструктуре AD, в журнале безопасности фиксируется большое количество событий, которые постепенно перезаписываются более новыми. Поэтому желательно увеличить максимальный размер журнала на DC и приступать к поиску источника блокировки как можно раньше.

Событие блокировки учетной записи на контроллере домена AD. eventid 4740

Откройте данное событие. Имя компьютера (или сервера), с которого была произведена блокировка указано в поле Caller Computer Name. В данном случае имя компьютера – WKS-TEST1.

Если в поле Computer Name указано неизвестное имя компьютера/устройства, который не резолвится в вашей сети через DNS (недоменный компьютер, или не Windows устройство с поддержкой Kerberos аутентфикации), вы можете получить IP адрес этого устройства. Для этого нужно включить следующие параметры аудита в Default Domain Controller Policy. Перейдите в раздел Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Advanced Audit Configuration и настройте следующие параметры:

  • Audit Kerberos Authentication Service: Success, Failure
  • Audit Kerberos Service Ticket Operations: Success, Failure
  • Audit Special Logon: Success, Failure

Откройте журнал Event Viewer -> Security и включите фильтр по Event ID 4740 и 4741. Обратите внимание, что теперь перед появлением события блокировки пользователя (4740) появляется событие 4771 (неуспешная kerberos аутентфикация) от Kerberos Authentication Service. В нем указано имя пользователя, который пытался выполнить аутентификацию и IP адрес устройства (поле Network Information -> Client Address), с которого пришел запрос.

4711 ip адрес устройтва-источника блокировки пользователя через kerberos аутентфикацию

Если удаленное устройство использует NTLM для аутентификации в домене, нужно выполнить поиск события EventID 4625 (неуспешная NTLM аутентификация) на контроллерах домена (оно появится только на DC, через который была выполнена попытка аутентифицироваться через NTLM).

Откройте последнее найденное событие с EventID 4625 для вашего пользователя (Account name). Здесь видно, что при попытке выполнить NTLM аутентификацию (Authentication Package: NTLM, Logon Process: NtLmSsp) учетная запись была заблокирована (
Failure Reason: Account locked out, Status: 0xC0000234
). В описании события указаны как имя компьютера (Workstation Name), так и его IP адрес (Source Network Address).

4625 IP адрес устройства, с которого выполняется блокировка пользователя при использовании NTLM аутентфикации

Если вы не можете найти событие блокировки пользователя в журнале Event Viewer, можно включить расширенный лог netlogon на контроллере домена. Выполните команду:

Перезапустите службу Netlogon

net stop netlogon && net start netlogon

Выполните поиск в файле netlogon.log событий:

  • 0xc000006a – An invalid attempt to login has been made by the following user
  • 0xc0000234 – The user account has been automatically locked because too many invalid logon attempts or password change attempts have been requested.

Можно найти события блокировки пользователя a.berg в файле netlogon.log с помощью команды:

поиск источника блокировки пользователя в логе debug\netlogon.log

В данном примере видно, что пользователь a.berg блокируется с устройства DESKTOP-74G6LB.

Не забудьте отключить расширенный лог на DC:

Find the Last Password Change Date Using the Lepide Active Directory Auditor

Lepide Active Directory Auditor overcomes the complexity of the native method by providing a straightforward way to list all passwords older than a specified number of days by using the Password Older than n Days Report:

  • Click the Permissions & Privileges icon and select Password Older than n Days
  • Specify a domain name
  • Click Generate Report
  • The report shows the date the password was last changed
  • The report can be filtered, sorted, saved, and exported
    Password Reset Date Lepide Auditor

Conclusion

Поиск компьютера, с которого блокируется пользователь с помощью PowerShell

Можно воспользоваться следующим PowerShell скриптом для поиска источника блокировки конкретного пользователя на PDC. Данный скрипт вернет дату блокировки и компьютер, с которого она произошла. Скрипт выполняет поиск событий с Event ID в Event Log:

powershell скрипт ждя поиска источника блокировки пользователя по событию 4740

Аналогичным образом можно опросить из PowerShell все контроллеры домена в Active Directory:

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

Политики блокировки учетных записей и паролей обычно задаются сразу для всего домена политикой Default Domain Policy в консоли gpmc.msc. Интересующие нас политики находятся в разделе Computer Configuration -> Windows Settings -> Security Settings -> Account Policy -> Account Lockout Policy (Конфигурация Windows -> Параметры безопасности -> Политики учетных записей -> Политики блокировки учетных записей). Это политики:

  • Account lockout threshold (Пороговое значение блокировки) – через сколько неудачных попыток набора пароля учетная запись должна быть заблокирована;
  • Account lockout duration (Продолжительность блокировки учетной записи) – на какое время будет заблокирована учетная запись (по истечении этого времени блокировка будет снята автоматически);
  • Reset account lockout counter after (Время до сброса счетчика блокировки) – через какое время будет сброшен счетчик неудачных попыток авторизации.
:/>  Пропали значки с рабочего стола Windows 10: причины, способы борьбы с проблемой

Политики блокировки учетных записей

Для защиты от перебора паролей рекомендуется использовать стойкие пароли пользователей в AD (использовать длину пароля не менее 8 символов и включить требования сложности. Это настраивается в разделе Password Policy в политиках Password must meet complexity requirements и Minimum password length. Периодически нужно выполнять аудит паролей пользователей.

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

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

How to Check Last Password Change in Active Directory

  1. Open Active Directory users and Computers
  2. Open the account properties
  3. Select the Attribute Editor tab
  4. Scoll down to the pwdLastSet attribute
pwdlastset active directory

Как определить программу, из которой блокируется учетная запись пользователя?

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

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

  • Сетевые диски, подключенные через
    net use
    (Map Drive);
  • Задания планировщика Windows Task Scheduler;
  • Ярлыки с настроенным режимом
    RunAs
    (используется для запуска от имени другого пользователя);
  • В службах Windows, которые настроены на запуск из-под доменной учетной записи;
  • Сохранённые пароли в менеджере паролей в панели управления (Credential Manager). Выполните команду
    rundll32.exe keymgr.dll, KRShowKeyMgr
    и удалите сохраненные пароли;

    Пароли пользователей могут быть сохранены в контексте SYSTEM. Чтобы вывести их, нужно запустить командную строку от имени SYSTEM с помощью
    psexec -i -s -d cmd.exe
    и выполнить команду
    rundll32 keymgr.dll,KRShowKeyMgr
    чтобы открыть список сохраненных паролей для NT AUTHORITY\SYSTEM.

  • Программы, которые хранят и используют закэшировнный пароль пользователя;
  • Браузеры;
  • Мобильные устройства (например, использующееся для доступа к корпоративной почте);
  • Программы с автологином или настроенный автоматический вход в Windows;
  • Незавершенные сессии пользователя на других компьютерах или терминальных RDS фермах или RDP серверах (поэтому желательно настраивать лимиты для RDP сессий);
  • Сохраненные пароли для подключения к Wi-FI сетям (WPA2-Enterprise 802.1x аутентификацию в беспроводной сети);
  • Если пользователь недавно сменил пароль и забыл его, вы можете сбросить его.

Совет. Существует ряд сторонних утилит (в основном коммерческих) позволяющих администратору выполнить проверку удаленной машины и детектировать источник блокировки учетных записей. В качестве довольно популярного решения отметим Account Lockout Examiner от Netwrix.

Для более детального аудита блокировок на найденном компьютере необходимо включить ряд локальных политик аудита Windows. Для этого на компьютере, на котором нужно отследить источник блокировки, откройте редактор локальной групповой политики gpedit.msc и включите следующие параметры в разделе Compute Configurations -> Windows Settings -> Security Settings -> Local Policies -> Audit Policy:

  • Audit process tracking: Success , Failure
  • Audit logon events: Success , Failure

Аудит событий входа/выхода в систему

Затем обновите настройки групповых политик на клиенте:

Дождитесь очередной блокировки учетной записи и найдите в журнале безопасности (Security) события с Event ID 4625. В нашем случае это событие выглядит так:

An account failed to log on.
Failure Reason: Account locked out.

Выявлем процесс/программу из которой была залокирована учетная запись

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

Если вы так и не смогли найти причину блокировки учетной записи на конкретном компьютере, попробуйте просто переименовать имя учетной записи пользователя в Active Directory (измените SAMaccountName и UPN пользователя в домене AD). Это как правило самый действенный метод защиты от внезапных блокировок определенного пользователя, если вы не смогли установить источник блокировки.

Учетная запись пользователя заблокирована и не может быть использована для входа в сеть

Политика безопасности учетных записей в большинстве организаций требует обязательного блокирования учетной записи пользователя в домене Active Directory, если он несколько раз подряд ввел неправильный пароль. Обычно учетная запись блокируется контроллером домена на несколько минут (5-30), в течении которых вход пользователя в домен невозможен. Через определение время (задается в политике безопасности домена), учетная запись пользователя автоматически разблокируется. Временная блокировка учетной записи позволяет снизить риск подбора пароля (простым брутфорсом) к учетным записям пользователей AD.

Если учётная запись пользователя в домене заблокирована, то при попытке входа в Windows появляется предупреждение:

Учетная запись пользователя заблокирована и не может быть использована для входа в сеть.
The referenced account is currently locked out and may not be logged on to ….

Учетная запись пользователя заблокирована и не может быть использована для входа в сеть

PowerShell to Find Last Password Change Date in Active Directory

  • Open the Powershell ISE
  • Run the following script, using the –identity parameter to specify the user account that you want to know the password last set date for:
    Get-ADUser -identity Gemma -properties passwordlastset, passwordneverexpires | sort name | ft Name, passwordlastset, Passwordneverexpire
  • Review the results:
    Last Password Change Date Using PowerShell

Как проверить, что аккаунт пользователя AD заблокирован?

Учетная запись сейчас заблокирована и не может быть использована для авторизации в домене (Lockedout = True). Также в выводе команды вы видите информацию о времени смены пароля пользователя в домене и времени блокировки аккаунта.

:/>  Новый аналог Punto Switcher для linux

poweshell: проверить что пользователь ad заблокирован - атрибут lockedout

Можно вывести сразу все заблокированные аккаунты в домене с помощью командлета Search-ADAccount:

Вы можете вручную снять блокировку учетной записи с помощью консоли ADUC, не дожидаясь автоматической разблокировки. Для этого в свойствах учетной записи пользователя на вкладке Account, включите опцию Unlock account. This account is currently locked out on this Active Directory Domain Controller (Разблокируйте учетную запись. Учетная запись на этом контроллере домена Active Directory на данный момент заблокирована) и сохраните изменения.

aduc разблокировать пользователя Active Directory

Также можно немедленно разблокировать учетную запись с помощью командлета PowerShell Unlock-ADAccount:

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

powershell узнать время блокировки пользователя

Get-ADUser PwdLastSet Details

The PwdLastSet attribute is stored as an Interger8 data type, meaning it’s not in a readable format.

The PowerShell expression below is used to convert the PwdLastSet value to a readable value.

@{Name='PwdLastSet';Expression={[DateTime]::FromFileTime($_.PwdLastSet)}}

Here is a screenshot of the value of the PwdLastSet attribute before converting it.

powershell command pwdlastset attribute

Here is a screenshot after adding the expression to the PowerShell command.

pwdlastset expression date

The AD Pro Toolkit converts the pwdLastSet by default making it fast and easy to use.

password recently changed date ad toolkit.

Get the Default AD Password Expiry Date with A PowerShell cmdlet

By default, every AD sets the password expiry date to 42 days after the last change.

Get-ADUser -Filter * -Properties DisplayName, pwdLastSet | Select-Object DisplayName, @{Name="pwdLastSet";Expression={[datetime]::FromFileTime($_.pwdLastSet)}}, @{Name="PasswordExpires";Expression={[datetime]::FromFileTime($_.pwdLastSet).AddDays(42)}} | Format-Table -AutoSize

How to Check When Password Expires in Active Directory Via Advanced PowerShell Scripts

Get-ADUser -Filter {Enabled -eq $true -and PasswordNeverExpires -eq $false} –Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" |

Select-Object -Property "Displayname",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}

Проверьте дату изменения последнего пароля рекламного пользователя с помощью power shell

Get-ADUser -Filter * -Properties msDS-UserPasswordExpiryTimeComputed | Select-Object Name, @{Name="PasswordExpiry";Expression={[System.DateTime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed").ToString("yyyy-MM-dd HH:mm:ss")}}

Password Expiry Date Via PowerShell

Those who are not comfortable with PowerShell can use the command line queries as directed.

Fetch Active Directory Password Expiration Date with Command Line

Check password expiry of currently logged in account

net user %username% | findstr /C:"Password expires"

password expiry of currently logged in account

dsquery user -limit 0 | dsget user -display -samid -acctexpires -disabled

entire user password expiry list

Use ADUC and See If User Passwords Expires or Not

If you double-click, it opens a popup from where you can copy the data. However, keep in mind that you get an integer value and not the actual date. Moreover, the value you get is of no practical use.

  • Open Active Directory Admin Center via the Server Manager or Windows search bar.
    Go to the Users Tab
  • Select a User
  • Click on the View Resultant Password Settings option from the rightmost pane.
  • A new box opens there look for the Enforce Maximum Password age option.
    View Password Reset
  • No password setting policy exists in the Active directory.
  • If set, the Password Setting policy is not applied to this user.
    User Password Policy Not Set

Professional Way to Check Password Expiry Date in Active Directory

Download Now Purchase Now

With the help of a dashboard date filter, you can slice the decades-long data into more manageable chunks.

Automated Steps to See User Password Expiry Parameter in AD

Conclusion

Frequently Asked Questions After Viewing AD User Password Expiry Date

  • Expand the arrow next to the domain name.
  • Click on System.
  • Choose Password Settings Container.
  • Click on New > Password Settings.
    Set User Password Policy
  • Fill in all the required details then go to the Directly Applies tab and put all the users you want.

Q. Is there a way to see the password expiry date via Event Viewer?
A. No, the Event Viewer does not generate any Event ID for password expiry. Moreover, trying to guess a date based on a failed logon event is difficult and error-prone.

  • Press Windows + R and type “gpme.msc” in the run module.
  • In the Browse for a Group Policy Object window choose a Group Policy.
  • Inside the Group Policy Management Editor Screen follow this path
  • Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Password Policy
  • The Password Policy Attributes appear on the Right Pane. Select the Maximum password age option and check the details present in the window.
    GPME Steps

author

By Mohit Jha

Mohit is a Microsoft Certified Expert who wears multiple hats as a writer, researcher, and editor. He’s really into cyber security, cloud computing, and digital forensics. These topics get him excited and push him to go beyond just his job. His big goal is to create super well-researched and carefully written articles that help readers learn important technicalities.

Утилита Microsoft Account Lockout and Management Tools

УтилитаMicrosoft Account Lockout and Management Tools

В появившемся списке будет содержаться список DC и состояние учетной записи (Locked или Non Locked). Дополнительно отображается время блокировки и компьютер, с которого заблокирована данная учетная запись (Orig Lock).

статус блокировки пользователя на всех контроллераз домена

Атрибуты badPwdCount и LastBadPasswordAttempt не реплицируются между контролерами домена.

Прямо из утилиты Lockoutstatus можно разблокировать пользователя, или сменить его пароль.

Lockoutstatus разблокировать пользователя

Основной недостаток утилиты LockoutStatus – она довольно долго опрашивает все контроллеры домена (некоторые из них могут быть недоступны).

Option 1. Get Last Password Change Date with PowerShell

In this example, I’ll show you how check the last password change date using PowerShell.

Step 1. Open PowerShell

Step 2. Copy and run the below command.

Get-ADUser -identity robert.allen  -properties PwdLastSet  | sort Name | ft Name,@{Name='PwdLastSet';Expression={[DateTime]::FromFileTime($_.PwdLastSet)}}
get last password change powershell

Extend Expired Password Using Powershell

1. Launch PowerShell

2. Connect to Active Directory

#
Import-Module ActiveDirectory
#

3. Set the ‘pwdLastSet’ attribute to 0

#
Set-ADUser -Identity <username> -Replace @{pwdlastset="0"}
#

4. Set the ‘pwdLastSet’ attribute to -1

#
Set-ADUser -Identity <username> -Replace @{pwdlastset="-1"}
#

Оставьте комментарий