Диагностика сбоев входа в Windows через PowerShell: от 4625 до выявления источника
Семёнов Евгений Сергеевич, директор АйТи Фреш. За 15+ лет обслуживания корпоративных сетей я повидал десятки сценариев «пользователь не может войти». Каждый раз причина оказывается разная: то телефон с саженым паролем, то сохранённый в реестре кредентиал, то просроченный профиль на терминальном сервере. И каждый раз PowerShell выручает: правильный запрос по журналу выдаёт точный источник за полминуты.
Какие события нужно смотреть в первую очередь
Вся аутентификация в Windows оставляет следы в журнале Security. У нас на практике достаточно пяти EventID, чтобы закрыть большинство инцидентов:
| EventID | Что значит | Где искать |
|---|---|---|
| 4624 | Успешный вход | Целевая машина |
| 4625 | Неуспешный вход | Целевая машина |
| 4740 | Блокировка учётки | Контроллер домена (PDC-эмулятор) |
| 4776 | NTLM-проверка | Контроллер домена |
| 4768 / 4769 | Запрос Kerberos TGT / сервисного билета | Контроллер домена |
Расшифровка причин неудачного входа
В событии 4625 поле SubStatus (или Status) — ключ к диагнозу:
| Код | Причина |
|---|---|
| 0xC0000064 | Нет такого пользователя |
| 0xC000006A | Неправильный пароль |
| 0xC000006D | Некорректный логин-пароль (общий) |
| 0xC000006F | Вход вне разрешённых часов |
| 0xC0000070 | Вход с запрещённой рабочей станции |
| 0xC0000071 | Пароль истёк |
| 0xC0000072 | Учётка отключена |
| 0xC0000193 | Учётка просрочена |
| 0xC0000234 | Учётка заблокирована |
| 0xC0000371 | Локальная учётка не реплицировалась |
Поиск источника блокировок
Самая частая жалоба — «учётка блокируется каждые полчаса». Я всегда начинаю с PDC-эмулятора: именно он принимает и реплицирует 4740. Запрос:
$pdc = (Get-ADDomain).PDCEmulator
Get-WinEvent -ComputerName $pdc -FilterHashtable @{
LogName = 'Security'
Id = 4740
StartTime = (Get-Date).AddDays(-1)
} | ForEach-Object {
[PSCustomObject]@{
Time = $_.TimeCreated
User = $_.Properties[0].Value
Caller = $_.Properties[1].Value
}
} | Sort-Object Time -Descending
В колонке Caller — имя компьютера, с которого пришёл последний неправильный пароль перед блокировкой. Это может быть ПК пользователя, мобильный с устаревшим профилем Exchange, принтер со сканером в почту или запланированная задача с жёстко зашитым паролем.
Глубокий разбор 4625 на конкретной машине
Когда источник найден, идём на эту машину и смотрим детально:
Get-WinEvent -ComputerName WRK-BUH-12 -FilterHashtable @{
LogName='Security'; Id=4625; StartTime=(Get-Date).AddHours(-2)
} | ForEach-Object {
[PSCustomObject]@{
Time = $_.TimeCreated
TargetUser = $_.Properties[5].Value
LogonType = $_.Properties[10].Value
ProcessName = $_.Properties[18].Value
IpAddress = $_.Properties[19].Value
Status = '0x{0:X}' -f $_.Properties[7].Value
SubStatus = '0x{0:X}' -f $_.Properties[9].Value
}
} | Format-Table -AutoSize
Поле ProcessName и LogonType — на что смотреть первым. Тип 3 (Network) — с сетевого ресурса, тип 10 (RemoteInteractive) — RDP, тип 4 (Batch) — запланированная задача, тип 5 (Service) — служба со своей учёткой.
Мини-кейс: блокировка учётки из-за МФУ
В марте 2026 года звонит клиент — юридическая фирма в районе Белорусской, 22 рабочих места. Учётка партнёра блокируется с интервалом 30 минут, рабочий день сорван. Логинюсь на PDC через WinRM, запускаю запрос по 4740 — Caller = OFFICE-MFP. Этого устройства в домене нет, но IP принадлежит сетевому МФУ Xerox. На принтере была настроена функция Scan-to-Mailbox с сохранённым паролем партнёра. Пароль в AD сменили месяц назад, МФУ продолжал долбить контроллер старым кредом.
Время расследования от звонка до устранения — 11 минут. Меняем пароль сохранённого подключения в веб-интерфейсе принтера, проверяем, что блокировок больше нет. Клиент с таким классом задач идёт к нам годами — это как раз за счёт скорости диагностики.
Диагностика медленного входа
Если жалоба «вход длится 3 минуты», включайте детальное логирование GroupPolicy и смотрите по времени, что именно тормозит:
Get-WinEvent -LogName 'Microsoft-Windows-GroupPolicy/Operational' -MaxEvents 200 |
Where-Object { $_.Id -in 4001,4002,4004,4016,4017,5016,5017,8001 } |
Select TimeCreated, Id, Message -First 50
Частые виновники: сетевые диски через slow-link, roaming profile на перегруженном файл-сервере, Scripts с ожиданием недоступного сетевого пути. У нас на практике большинство таких историй заканчивается переносом профилей с SMB-шары на FSLogix-контейнеры и перенастройкой Drive Maps в Preferences с флагом «Replace».
Проверка Kerberos
Если пользователь не может получить доступ к сетевому ресурсу после входа — смотрим на Kerberos:
# Список билетов на машине пользователя
klist
# События запроса TGT на DC
Get-WinEvent -ComputerName DC01 -FilterHashtable @{
LogName='Security'; Id=4768
} -MaxEvents 30 | Select TimeCreated, Message
Классическая ошибка — пересоздали учётку пользователя или сервисную учётку SPN, а старые билеты остались кэшированными. Лекарство: klist purge на клиенте и перезапуск.
Учётные записи, готовые к поиску
Для регулярных аудитов держу под рукой:
# Заблокированные учётки
Search-ADAccount -LockedOut | Select Name, SamAccountName, LastBadPasswordAttempt
# Учётки с истёкшим паролем
Search-ADAccount -PasswordExpired | Select Name, PasswordLastSet
# Давно не заходившие
Search-ADAccount -AccountInactive -TimeSpan 90 | Select Name, LastLogonDate
Разберу любые сбои входа на Windows
Диагностика блокировок, медленных логонов, потерь профилей, проблем Kerberos и NTLM. Удалённо по WinRM или выезд в офис в Москве и Московской области.
Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш
FAQ — частые вопросы
- По какому EventID искать неудачные логоны?
- 4625 в Security. Поле SubStatus указывает точную причину — неправильный пароль, отключённая учётка, запрет по часам и так далее.
- Как найти источник блокировки учётной записи?
- 4740 на PDC-эмуляторе. Поле Caller содержит имя машины с неправильным паролем.
- Почему у пользователя долгий вход в Windows?
- Смотрите журнал GroupPolicy/Operational, профили, drive maps, logon scripts. FSLogix почти всегда ускоряет вход в терминальной среде.
- Что значит EventID 4776?
- NTLM-аутентификация. Код 0x0 — успех, 0xC0000064/6A — пользователь или пароль неправильные.
- Как быстро снять блокировку с учётки?
- Unlock-ADAccount. На удалённых сайтах подождите репликации и проверьте через Search-ADAccount -LockedOut.