Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

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

Event ID 4647: Выход из системы инициирован пользователем (Logoff)

Обновлено: 15.08.2026  ·  Официальная база знаний

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

Событие 4647 логируется в журнале Security, когда пользователь явно нажимает кнопку 'Выйти' (Start -> Logoff) или выполняет консольную команду logoff. В отличие от системного события >4634 (которое фиксирует техническую смерть сессии), 4647 фиксирует НАМЕРЕНИЕ человека (интерактивного пользователя) завершить работу.

Отличия 4647 от 4634 и 4779

Событие (Event ID)Суть действия (Что произошло)
4647 (User Initiated Logoff)Пользователь нажал 'Выйти'. Все его программы закрываются, сессия уничтожается.
4634 (Logoff)Техническое уничтожение токена доступа. Генерируется всегда (после 4647 или по таймауту).
4779 (Session Disconnected)Пользователь нажал 'Крестик' в окне RDP или заблокировал ПК (Win+L). Программы продолжают работать в RAM.

Пошаговое дерево решений (Мониторинг дисциплины)

Сценарий 1: Контроль завершения рабочего дня

Событие 4647 — самый надежный (юридически значимый) маркер окончания рабочего дня сотрудника на локальном ПК или терминальном сервере RDS.

Скрипт поиска ручных выходов из системы:
# Отслеживание ручных выходов сотрудников (Start -> Sign Out)
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4647; StartTime=(Get-Date).AddDays(-1)} | 
    Select-Object TimeCreated, @{N="User";E={$_.Properties[1].Value}} | Format-Table -AutoSize

Сценарий 2: Защита от "брошенных" сессий

Если пользователи не генерируют события 4647, значит они уходят домой, оставляя сессии открытыми (или заблокированными). Незакрытые сеансы (Disconnected) на сервере RDS ведут к утечкам данных (если сессию перехватят) и "сжигают" оперативную память.

Настройка принудительного Logoff (GPO):
  1. Откройте gpedit.msc на сервере.
  2. Перейдите: Конфигурация компьютера -> Адм. шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов -> Ограничение времени сеансов.
  3. Включите Задать ограничение времени для отключенных сеансов (Set time limit for disconnected sessions).
  4. Установите значение, например, 2 часа. (Через 2 часа ядро убьет сессию, сгенерировав 4634, но не 4647).

Типовые ошибки администраторов

  • Попытка искать 4647 для сетевых шар: Событие 4647 генерируется ТОЛЬКО для интерактивного (Logon Type 2) или RDP-входа (Logon Type 10). Для сетевых папок (Type 3) этого события в природе не существует.
Сотрудники оставляют незаблокированные сессии, угрожая безопасности компании?
Хаос в управлении удаленным доступом ведет к кражам баз данных. Возьмем ИТ-инфраструктуру на абонентское обслуживание: настроим GPO на авто-выход при простое, внедрим СКУД (Смарт-карты) и жестко защитим коммерческую информацию.
Практический опыт инженера: Если вы видите 4647 в середине рабочего дня от имени администратора на критичном сервере (например, Контроллере домена) — это отличный показатель дисциплины (админ закончил работы по заявке и корректно вышел). Но если администраторская сессия 'висит' днями и в итоге обрывается по 4634 (таймаут) — это грубейшее нарушение регламентов ИБ.

Частые вопросы (FAQ)

Генерируется ли 4647 при выключении ПК (Shut down)?

Да. Если пользователь нажимает 'Завершение работы' (Shut down) или 'Перезагрузка' (Restart), подсистема Winlogon сначала инициирует корректный Logoff пользователя, создавая событие 4647, а затем уже выключает ядро (событие 1074).

Можно ли скриптом вызвать 4647?

Да, выполнение команды 'logoff.exe' (или 'shutdown /l') в командной строке от имени пользователя инициирует точно такое же интерактивное завершение с генерацией события 4647.