В крупных сетях с большим количеством администраторов, иногда приходится расследовать кто именно удалил или установил программу на определенном сервере или компьютере Windows. В этой статье мы рассмотрим, как из журналов Windows извлечь информацию о пользователе, который запустил установку или удаление программы.
При установке или удалении классических Windows-приложений через MSI установщик, в журнал Event Viewer записываются соответствующие события от
MsiInstaller
.
- 11707 – код события успешной установки MSI приложения.
- 11724 – событие удаление MSI приложения
Откройте консоль журнала событий Event Viewer (
eventvwr.msc
) и включите фильтр по событиям с ID 11707 и 11724 для журнала Application. Перед вами появится список событий установки и удаления программ. В описании события указано название программы, которая была установлена или удалена. Например:
Product: Zabbix Agent 2 (64-bit) -- Removal completed successfully.
Product: 7-Zip 24.09 (x64 edition) -- Installation completed successfully.
Имя пользователя, который удалил или установил пакет можно найти в свойстве события User.
Для быстрого поиска всех событий установки/удаления определенной программы можно использовать PowerShell. Следующий скрипт выведет все события установки или удаления агента Zabbix на сервере, включая имена пользователей, которые выполняли эти действия.
Get-WinEvent -FilterHashtable @{LogName="Application"; ID=11707,11724; ProviderName='MsiInstaller'} | Where-Object { $_.Message -like '*Zabbix*' } | Select TimeCreated, @{Name='Username'; Expression={(New-Object System.Security.Principal.SecurityIdentifier($_.userid)).Translate([System.Security.Principal.NTAccount]).Value}}, Message
userid
содержится SID пользователя, мы дополнительно преобразуем его в нормальное имя.Также информация о событиях установки и удаления программ доступна в Мониторе стабильности системы (Reliability Monitor). Подробно это описано в статье о получении истории установки/удаления приложений в Windows.