Просмотр истории установки и удаления программ в Windows

Просмотр истории установки и удаления программ в Windows

Из журнала событий Windows можно получить логи установки, обновления и удаления программ, а также определить конкретного пользователя, который запустил установку или удаление приложения.

Для просмотра журнала установки приложений:

  1. Откройте консоль журнала событий Event Viewer (
    eventvwr.msc
    )
  2. Перейдите в раздел Windows Logs -> Application
  3. Щелкните правой кнопкой по журналу и включите фильтр (Filter current log) Фильтр журнала событий Event Viewer
  4. В качестве источника событий выберите
    MsiInstaller
    . Найти события от MsiInstallerСобытия с EventID 11707 содержат информацию об успешной установке программы (
    Installation completed successfully
    ).
    EventID 11724 – события успешного удаления пакета (
    Removal completed successfully
    ).

    EventID 11707 - событие успешной установки программы

    В этом журнале будут фиксироваться только события установки приложений, упакованных в MSI/MSP пакеты (или в EXE файлы, которые фактически запускают установку MSI пакета с помощью
    msiexec.exe
    ). Для установки MSI пакетов используется служба установки Windows Installer (
    msiserver
    ), которая позволяет выполнить корректную установку удаление или откат установки приложения. Некоторые приложения, распространяемые через EXE файлы не используют службу msiserver и соответственно не пишут такие события.

  5. Если вы хотите определить, какой конкретно пользователь удалил или установил программу, перейдите на вкладку Details в свойствах события. Переключитесь в режим XML view. SID пользователя указан в значении атрибута Security UserID. Скопируйте его.Узнать имя пользователя, который установил программу
  6. Чтобы конвертировать SID пользователя в имя учетной записи, выполните команду:
    wmic useraccount where sid='S-1-5-21-506968642-4209078585-1781862235-1001' get name

Команда вернет имя пользователя, который инициировал установку или удаление программы.

Преобразовать SID в имя пользователя

Если нужно извлечь события установки/удаления программ из журнала событий с помощью PoweShell, воспользуйтесь командлетом Get-WinEvent. Например, вывести журнал успешных установок программ:

Get-WinEvent -FilterHashtable @{LogName="Application";ID=11707;ProviderName='MsiInstaller'} | Select TimeCreated,Message

PowerShell: вывести события установки программ в Windows

В Windows есть еще более удобный инструмент, который позволяет в одном окне показать историю установки/удаления/обновления программ, включай приложения Microsoft Store, а также историю установки обновлений Windows. Речь о Мониторе стабильности системы (Reliability Monitor).

Reliability Monitor – это отдельный апплет в классической панели управления Windows, который в графическом виде отображает индекс стабильности системы и подробные сведения о событиях, которые могли повлиять на стабильность ОС (сбои в программах, установка/удаление приложений и прочее).

Чтобы открыть Reliability Monitor, перейдите в панель управления -> Security and Maintenance, нажмите на ссылку View reliability history в разделе Maintenance (или просто выполните команду (
perfmon /rel
).

Открыть мониторе стабильности системы (Reliability Monitor) в Windows

Здесь в разрезе по дням/неделям можно посмотреть какие обновления, программы и UWP приложения устанавливались или удалялись. Подробную информацию о событии можно получить, нажав на кнопку View technical retails.

События в Мониторе стабильности

Для построения отчетов об установке/удалении приложений из монитора стабильности можно использовать PowerShell. Следующий скрипт выведет в графическую таблицу Out-GridView все события установки, удаления и обновления программ, Windows Updates, APPX/MSIX на компьютере за последние
7
дней.

$DaysAgo = (Get-Date).AddDays(-7)
$RealiabilityFilter= "TimeGenerated > '$DaysAgo' and (SourceName='Microsoft-Windows-WindowsUpdateClient' or SourceName='MsiInstaller')"
Get-CimInstance -ClassName Win32_ReliabilityRecords -filter $RealiabilityFilter|Select TimeGenerated,ProductName,User,message |Out-GridView

С помощью встроенных фильтров Out-GridView можно отфильтровать все связанные события по конкретному приложению, определенному событию или пользователю.

PowerShell скрипт для поиска событий удаления и установки приложений в Windows

Windows 10
Просмотр истории установки и удаления программ в Windows