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

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

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

4689 Windows Server, AD и Роли

Event ID 4689: Процесс завершен (Process Termination) - Аудит

Обновлено: 15.08.2026 · Официальная документация ↗

Архитектура аудита процессов и завершения работы

Событие 4689 логируется в журнале Security, когда процесс операционной системы или приложение завершает свою работу. Это парное (антонимичное) событие для >4688 (Process Creation). Анализ 4689 критически важен для расчета точного времени (продолжительности) работы скриптов и выявления аварийных падений вредоносного ПО (Malware).

Таблица кодов завершения (Exit Status)

Самое полезное поле в событии 4689 — это Статус завершения (Exit Status). Оно показывает, как именно "умер" процесс:

Exit Status (HEX)Что означаетВывод для инженера
0x0Успешное завершение.Процесс отработал штатно (сценарий выполнен).
0x1Завершен с ошибкой.Скрипт или программа прервались логической ошибкой.
0xC0000005Access Violation.Процесс упал с крашем (попытка чтения защищенной памяти). Часто так падают эксплойты.
0xC000013ASTATUS_CONTROL_C_EXITПользователь нажал Ctrl+C в консоли или убил процесс через Task Manager.

Сценарии диагностики и форензики (Forensics)

Сценарий 1: Вычисление времени работы подозрительного скрипта

Связав события 4688 (Запуск) и 4689 (Завершение) по уникальному Process ID (PID), можно понять, сколько времени работал скрипт шифровальщика.

# Поиск завершенных процессов PowerShell и их статус-кодов
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4689; StartTime=(Get-Date).AddDays(-1)} | 
    Where-Object {$_.Properties[5].Value -match "powershell.exe"} | 
    Select-Object TimeCreated, 
    @{N="PID";E={$_.Properties[4].Value}}, 
    @{N="ExitCode";E={$_.Properties[6].Value}}

Сценарий 2: Поиск "крашей" скрытого ПО (Malware)

Вредоносное ПО часто работает нестабильно. Если процесс завершается со статусом 0xC0000005 или 0xC0000409 (Stack Buffer Overrun), это повод проверить этот EXE файл антивирусом.

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

  • Попытка найти аргументы командной строки в 4689: Событие 4689 содержит только имя файла и PID. Полные аргументы командной строки (ключи запуска) хранятся ТОЛЬКО в событии запуска 4688.
Журналы безопасности переполняются и не дают расследовать инциденты?
События процессов 4688/4689 генерируют миллионы записей в сутки. Делегируйте ИБ-мониторинг экспертам: мы настроим Windows Event Forwarding (WEF), внедрим ELK/Wazuh и автоматизируем поиск аномалий.
💡 Практика специалистов: При сборе логов в SIEM мы рекомендуем отфильтровывать события 4689 от доверенных системных служб (conhost.exe, svchost.exe), чтобы сэкономить до 40% дискового пространства на Log-сервере, не теряя при этом видимости ИБ инцидентов.

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

Включен ли аудит 4689 по умолчанию?

Нет. Его нужно включить в GPO: 'Аудит завершения процессов' (Audit Process Termination) = Success.

Показывает ли 4689, какой именно пользователь убил процесс?

Нет, 4689 показывает учетную запись, под которой работал сам завершенный процесс. Чтобы узнать, кто именно инициировал команду 'Taskkill', нужно искать событие 4656 (Handle Request) к этому процессу.

Почему Exit Status записан в десятичном виде (например, 259)?

Windows Event Viewer часто отображает код в формате Decimal. 259 в десятичной системе — это 0x103 (STILL_ACTIVE). Процесс еще не завершился до конца.

Полезно ли событие 4689 для аудита серверов SQL?

Да, если процесс sqlservr.exe генерирует 4689, значит база данных полностью остановилась (аварийно или штатно).

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