Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

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

4647 Windows Server, AD и Роли

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.

Полезные материалы
Рекомендуем