Ограничение срока действия учетной записи AD через GPO и PowerShell
Симптомы истечения срока действия учетной записи AD
При попытке входа в домен пользователь получает сообщение: Срок действия учетной записи данного пользователя истек. Обратитесь к системному администратору («The user's account has expired», ошибка аутентификации 0x80070524 / STATUS_ACCOUNT_EXPIRED). В журнале безопасности контроллера домена регистрируется событие Event ID 4625 (с подстатусом 0xC0000193).
| Код события | Подстатус Kerberos/NTLM | Описание причины |
|---|---|---|
| Event ID 4625 | 0xC0000193 (STATUS_ACCOUNT_EXPIRED) | Текущая дата превысила значение атрибута accountExpires объекта пользователя |
| Event ID 4726 | User Account Management | Удаление или плановое отключение истекшей учетной записи автоматизацией |
| Ошибка 0x80070524 | Winlogon Client | Блокировка интерактивного входа на рабочей станции |
Пошаговая настройка срока действия учетных записей
- Установка точной даты истечения учетной записи через PowerShell: параметр
accountExpiresхранится в формате FileTime. Для назначения срока используйте командлетSet-ADAccountExpiration:Set-ADAccountExpiration -Identity "ivan.ivanov" -DateTime (Get-Date).AddDays(30) - Массовая установка срока действия для сотрудников конкретного OU:
Get-ADUser -Filter * -SearchBase "OU=Temporary,DC=company,DC=local" | Set-ADAccountExpiration -DateTime (Get-Date "2025-12-31 23:59:59") - Автоматизация поиска и отключения истекших учетных записей через планировщик: создайте задачу по расписанию со скриптом:
Search-ADAccount -AccountExpired | Disable-ADAccount - Ограничение времени входа в систему (Logon Hours) через GPO / ADUC: в консоли
dsa.mscоткройте свойства пользователя > Учетная запись > Время входа (Logon Hours) и задайте разрешенные рабочие интервалы.
Важно: Значение атрибута accountExpires = 9223372036854775807 или 0 означает, что срок действия учетной записи никогда не истекает (Never Expires).
Частые вопросы (FAQ)
Можно ли задать автоматический срок действия новых пользователей через GPO?
Напрямую в стандартных объектах GPO нет параметра для задания AccountExpires при создании. Это автоматизируется через политики подготовки учетных записей (Identity Provisioning) или PowerShell-скрипты при создании объекта.
Что происходит с активной сессией пользователя, когда наступает время истечения?
Если включена политика безопасности 'Принудительный разрыв связи при истечении времени входа', сессия пользователя принудительно блокируется или завершается.
Как сбросить дату истечения и сделать учетную запись бессрочной?
Выполните команду PowerShell: Clear-ADAccountExpiration -Identity 'username'.
В каком часовом поясе сохраняется атрибут accountExpires?
Атрибут accountExpires сохраняется в базе Active Directory в формате UTC (Coordinated Universal Time) и конвертируется в локальное время при просмотре.