Коди подій Windows: як визначити, хто встановив або видалив програму

event 12.07.2026 10:00
| category System administration | person iron_will | comment 0 | visibility 5 | |

Вступ

У корпоративному середовищі контроль змін на робочих станціях є одним із ключових елементів інформаційної безпеки та ефективного адміністрування. Одним із найпоширеніших запитань, які виникають у системних адміністраторів, фахівців служби підтримки та спеціалістів з інформаційної безпеки, є: хто встановив або видалив програму на комп'ютері під керуванням Windows?

На перший погляд відповідь здається простою, однак операційна система Windows не веде єдиний журнал інсталяції програм. Залежно від способу встановлення застосунку інформація може зберігатися у різних журналах подій, реєстрі, системі аудиту або засобах централізованого керування, таких як Microsoft Intune, Microsoft Configuration Manager (SCCM) чи Group Policy.

У цій статті детально розглянемо, які журнали подій необхідно аналізувати, які Event ID використовуються для різних сценаріїв встановлення та видалення програм, а також як автоматизувати пошук необхідної інформації за допомогою PowerShell.

Чому Windows не має єдиного журналу встановлення програм

Причина полягає у великій кількості технологій встановлення програмного забезпечення.

Програми можуть бути встановлені:

  • через Windows Installer (MSI);
  • за допомогою EXE-інсталяторів;
  • через Microsoft Store;
  • через Intune;
  • через Group Policy;
  • через SCCM або Microsoft Configuration Manager;
  • за допомогою PowerShell;
  • пакетними менеджерами (Winget, Chocolatey, Scoop);
  • вручну шляхом копіювання файлів.

Кожен із цих механізмів залишає власний набір артефактів.

Саме тому під час розслідування необхідно аналізувати кілька журналів одночасно.

Які журнали подій необхідно перевіряти

Найважливішими є такі журнали:

  • Application
  • Security
  • Setup
  • Microsoft-Windows-AppXDeploymentServer/Operational
  • Microsoft-Windows-MSIInstaller
  • Microsoft-Windows-DeviceManagement-Enterprise-Diagnostics-Provider
  • Windows PowerShell
  • Sysmon (якщо використовується)

Саме вони дозволяють відновити повну картину змін у системі.

Події Windows Installer (MSI)

Найбільше інформації міститься у журналі Application.

Джерело подій:

MsiInstaller

Event ID 1033

Повідомляє про успішне встановлення MSI-пакета.

Приклад:

Product: 7-Zip 24.09

Installation completed successfully.

Можна отримати:

  • назву програми;
  • версію;
  • дату встановлення;
  • користувача, від імені якого виконувалася інсталяція.

Event ID 1034

Відображає завершення операції видалення.

Приклад:

Removal completed successfully.

Event ID 11707

Одне з найважливіших повідомлень.

Воно означає успішне завершення встановлення MSI.

Приклад:

Product: Microsoft Visual C++ Redistributable

Installation operation completed successfully.

Event ID 11724

Фіксує успішне видалення програмного забезпечення.

Як знайти всі встановлення MSI

PowerShell:

Get-WinEvent `
-FilterHashtable @{
LogName='Application'
ProviderName='MsiInstaller'
} |
Where-Object {
$_.Id -in 1033,1034,11707,11724
}

Журнал Security

Якщо аудит налаштований правильно, саме журнал Security дозволяє визначити користувача.

Event ID 4688

Створення нового процесу.

Приклад:

msiexec.exe

setup.exe

winget.exe

powershell.exe

Саме ця подія дозволяє побачити:

  • хто запускав інсталятор;
  • під яким обліковим записом;
  • командний рядок;
  • PID процесу;
  • батьківський процес.

Приклад команди:

Get-WinEvent `
-FilterHashtable @{
LogName='Security'
Id=4688
}

Якщо ввімкнено аудит командного рядка, можна отримати повний шлях до інсталятора:

C:\Users\Admin\Downloads\setup.exe

або

msiexec.exe /i Office.msi

Event ID 4689

Завершення процесу.

Допомагає визначити час закінчення встановлення.

Event ID 4663

Якщо налаштовано аудит файлової системи, можна побачити:

  • створення файлів;
  • видалення;
  • зміну каталогів Program Files;
  • запис у ProgramData.

Це особливо корисно при аналізі EXE-інсталяторів.

Журнал Setup

Багато компонентів Windows використовують журнал Setup.

Особливо це стосується:

  • драйверів;
  • ролей;
  • компонентів Windows;
  • оновлень.

Microsoft Store

Для програм Microsoft Store використовується окремий журнал:

Applications and Services Logs

Microsoft

Windows

AppXDeploymentServer

Operational

Найважливіші Event ID:

Event IDОпис
400Початок встановлення
401Завершення встановлення
404 Видалення застосунку

Ці події дозволяють простежити історію встановлення програм із Microsoft Store.

Device Management (Intune)

Якщо програми встановлюються через Microsoft Intune, слід аналізувати журнал:

Microsoft-Windows-DeviceManagement-Enterprise-Diagnostics-Provider/Admin

Тут можна знайти:

  • успішне встановлення;
  • помилки інсталяції;
  • політики;
  • синхронізацію;
  • ідентифікатор застосунку.

Це один із найважливіших журналів для сучасних корпоративних середовищ.

SCCM (Configuration Manager)

Під час використання SCCM основна інформація міститься не лише у журналах Windows.

Найважливіші журнали клієнта:

AppEnforce.log

AppDiscovery.log

ExecMgr.log

CAS.log

ContentTransferManager.log

Вони знаходяться:

C:\Windows\CCM\Logs

Саме вони містять:

  • ім'я застосунку;
  • команду встановлення;
  • результат;
  • код помилки;
  • користувача;
  • час виконання.

PowerShell як джерело встановлення

Якщо програма встановлювалася через PowerShell:

Start-Process

Invoke-Expression

winget

Chocolatey

можна перевірити журнал:

Applications and Services Logs

Windows PowerShell

або

Microsoft-Windows-PowerShell/Operational

Корисні події:

Event ID Призначення
400Початок сесії
403Завершення
4103Виконання команд
4104 Script Block Logging

Якщо ввімкнено Script Block Logging, можна побачити навіть повний сценарій PowerShell.

Приклад:

winget install 7zip.7zip

або

Start-Process setup.exe -ArgumentList "/silent"

Sysmon

Якщо використовується Sysmon, можливості аналізу значно розширюються.

Основні події:

Event IDОпис
1Створення процесу
11Створення файлу
13Запис у реєстр
23Видалення файлу


Завдяки цьому можна відстежити повний ланцюжок встановлення програмного забезпечення.

Як визначити, хто встановив програму

Розглянемо типовий сценарій.

Користувач повідомляє:

Учора на комп'ютері з'явився новий PDF-редактор.

Алгоритм розслідування:

  1. Перевірити журнал Application.
  2. Знайти події MsiInstaller.
  3. Визначити час встановлення.
  4. Перевірити Event ID 4688.
  5. Встановити користувача.
  6. Проаналізувати командний рядок.
  7. Перевірити AppX або Intune за потреби.

Наприклад:

4688

User:
DOMAIN\ivan.petrenko

Process:

C:\Users\ivan.petrenko\Downloads\setup.exe

Після цього можна впевнено визначити, хто саме виконав інсталяцію.

Як визначити, хто видалив програму

Принцип аналогічний.

Необхідно знайти:

  • Event ID 1034;
  • Event ID 11724;
  • Event ID 4688;
  • процес
msiexec.exe /x

або

uninstall.exe

Після цього встановлюється користувач, який виконав видалення.

Автоматизація пошуку

Приклад PowerShell, який знаходить усі події Windows Installer.

$events = Get-WinEvent -FilterHashtable @{
    LogName='Application'
    ProviderName='MsiInstaller'
}

$events |
Where-Object {
    $_.Id -in 1033,1034,11707,11724
} |
Select-Object TimeCreated,Id,Message

Автоматичний пошук запусків інсталяторів

Get-WinEvent `
-FilterHashtable @{
LogName='Security'
Id=4688
} |
Where-Object {
$_.Message -match 'setup.exe|msiexec.exe|winget.exe'
}

Типові проблеми

Журнал очищений

У цьому випадку допоможуть:

  • резервні копії журналів;
  • Microsoft Defender for Endpoint;
  • Microsoft Sentinel;
  • SIEM;
  • Sysmon.

Події відсутні

Причини можуть бути такими:

  • аудит вимкнений;
  • програма була портативною;
  • журнал переповнений;
  • інсталяція виконувалася від імені системи.

EXE-інсталятор не залишив записів

Не всі EXE-інсталятори використовують Windows Installer.

Тоді доведеться аналізувати:

  • Event ID 4688;
  • Prefetch;
  • Amcache.hve;
  • ShimCache;
  • реєстр;
  • Sysmon.

Рекомендації для корпоративного середовища

Для забезпечення повного аудиту встановлення та видалення програм доцільно впровадити такі практики:

  • увімкнути аудит створення процесів (Event ID 4688) із записом командного рядка;
  • активувати Script Block Logging для PowerShell;
  • використовувати Sysmon із грамотно налаштованою конфігурацією;
  • централізовано збирати журнали через Windows Event Forwarding (WEF), Microsoft Sentinel, SIEM або інші системи моніторингу;
  • регулярно архівувати журнали подій для запобігання втраті інформації;
  • контролювати встановлення програм через Intune, SCCM або Group Policy, щоб мінімізувати несанкціоновані зміни.

Комплексний підхід дозволяє не лише визначити факт встановлення чи видалення програмного забезпечення, а й встановити точний час, користувача, джерело інсталяції та команду, яка була виконана.

Висновки

Windows не має єдиного журналу, який фіксує всі випадки встановлення або видалення програм. Ефективне розслідування базується на аналізі кількох джерел даних: журналів Application, Security, Setup, журналів Microsoft Store, PowerShell, Intune та, за наявності, Sysmon.

Найбільш інформативними подіями є MsiInstaller (1033, 1034, 11707, 11724) для операцій із пакетами MSI та Security 4688 для визначення користувача і процесу, який ініціював встановлення. У сучасних корпоративних середовищах додаткову цінність забезпечують централізовані системи збору журналів і рішення класу SIEM, що дозволяють швидко проводити аудит, реагувати на інциденти та підтримувати відповідність вимогам інформаційної безпеки.

Related posts

PowerShell і BITS: ефективне копіювання та завантаження великих файлів

Вступ Передавання великих файлів є одним із найпоширеніших завдань у роботі системних адміністраторів, DevOps-інженерів, фахівців технічної підтримки та розробників. Резервні копії, ISO-образи операційних систем, віртуальні машини, архіви логів або...

category System administration person iron_will event 20/06/2026

Мережеві порти: що це таке, які вони бувають, навіщо потрібні та які мають обмеження

Вступ Сучасні комп'ютерні мережі побудовані на принципі одночасної роботи великої кількості сервісів та застосунків. Вебсервери, поштові системи, бази даних, VPN-рішення, системи моніторингу та корпоративні сервіси використовують одну й ту саму мере...

category Network person iron_will event 05/06/2026

Robocopy: можливості та переваги перед звичайним Copy/Xcopy

Вступ У корпоративному середовищі Windows-копіювання файлів давно вийшло за межі простого перенесення даних з однієї директорії в іншу. Коли йдеться про великі обсяги інформації, мережеві шляхи, нестабільні з’єднання або вимоги до надійності, станда...

category DevOps person iron_will event 28/05/2026

VPN, SSH та базова безпека інфраструктури

Вступ Сучасна IT-інфраструктура функціонує в умовах постійного зовнішнього впливу: сканування портів, автоматизовані брутфорс-атаки, експлуатація вразливостей сервісів та цільові кібератаки. Навіть невеликі системи без належного захисту можуть стати...

category Security person iron_will event 26/05/2026

Що таке RAID: рівні RAID, принцип роботи та навіщо він потрібен

Вступ У сучасній ІТ-інфраструктурі дані є одним із найцінніших ресурсів. Сервери, системи віртуалізації, бази даних, файлові сховища та резервні копії постійно працюють із великими обсягами інформації. Втрата даних через збій накопичувача може призв...

category System administration person iron_will event 10/05/2026

Як знайти головну IP-адресу джерела DDoS у лог-файлі на 10 млн рядків у Linux

Вступ Коли сервер потрапляє під DDoS-атаку, одним із перших завдань адміністратора є швидке визначення джерел аномального трафіку. На практиці це означає аналіз великих лог-файлів вебсервера, балансувальника, firewall або reverse proxy. Якщо файл мі...

category System administration person iron_will event 25/04/2026
cookie
This website uses cookies to improve your experience. Learn more
dangerous
warning