· 15 мин чтения

Диагностика сбоев входа в Windows через PowerShell: от 4625 до выявления источника

Семёнов Евгений Сергеевич, директор АйТи Фреш. За 15+ лет обслуживания корпоративных сетей я повидал десятки сценариев «пользователь не может войти». Каждый раз причина оказывается разная: то телефон с саженым паролем, то сохранённый в реестре кредентиал, то просроченный профиль на терминальном сервере. И каждый раз PowerShell выручает: правильный запрос по журналу выдаёт точный источник за полминуты.

Какие события нужно смотреть в первую очередь

Вся аутентификация в Windows оставляет следы в журнале Security. У нас на практике достаточно пяти EventID, чтобы закрыть большинство инцидентов:

EventIDЧто значитГде искать
4624Успешный входЦелевая машина
4625Неуспешный входЦелевая машина
4740Блокировка учёткиКонтроллер домена (PDC-эмулятор)
4776NTLM-проверкаКонтроллер домена
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.

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя IT и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.