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

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

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

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, значит база данных полностью остановилась (аварийно или штатно).