---
title: Получаем историю запуска программ в Windows с помощью политик аудита
description: "# **Получаем историю запуска программ в Windows с помощью политик аудита** В этой статье рассмотрим, как с помощью политик аудита Windows можно узнать какие программы запускались на компьютере. Довольно часто от администратора требуют предоставить информацию о том, какие приложения запускает…"
url: "https://itoservice.ru/docs/poluchaem-istoriyu-zapuska-programm-v-windows-s-pomoshchyu-politik-audita/"
updated: "2026-10-23"
category: Group Policy Object (GPO)
---

# Получаем историю запуска программ в Windows с помощью политик аудита

# **Получаем историю запуска программ в Windows с помощью политик аудита**

В этой статье рассмотрим, как с помощью политик аудита Windows можно узнать какие программы запускались на компьютере. Довольно часто от администратора требуют предоставить информацию о том, какие приложения запускает пользователь, когда он запускал приложение в последний раз и т.д. Эту информацию можно собрать из журнала событий Windows и преобразовать в удобный отчет с помощью PowerShell.

Сначала нужно включить политику аудита запуска/остановки процессов в Windows.

1. Откройте редактор локальной групповой политики **gpedit.msc** ; Если вы хотите включить политику аудита процессов на компьютерах в домене Active Directory, нужно использовать редактор доменных GPO – **gpmc.msc** .
2. Перейдите в раздел GPO **Computer Configuration**-> **Windows Settings** -> **Security Settings** -> **Local Policies** -> **Audit Policy**;
3. Включите политику **Audit process tracking** и тип событий **Success**;![Включить аудит процессов в Windows](https://winitpro.ru/wp-content/uploads/2022/04/vklyuchit-audit-processov-v-windows.png)
4. Сохраните изменения и обновите локальные политики на клиенте командой: gpupdate /force

Откройте Event Viewer ( **eventvwr.msc **) и разверните раздел **Windows Logs** -> **Security**. Теперь при запуске любой программы (процесса) в этом журнале событий появляется событие **Process Creation** с **EventID 4688**.

```
A new process has been created.
```

В информации о событии указан пользователь, запустивший программу ( **Creator Subject** ), имя исполняемого файла процесса ( **New Process Name** ) и родительский процесс, из которого было запущено приложение ( **Creator Process Name** ).

![событие event id 4688 - запуск процесса](https://winitpro.ru/wp-content/uploads/2022/04/sobytie-event-id-4688-zapusk-processa.png)

Обратите внимание, что при включении рассмотренной выше политики **Audit process tracking** в журнал **Security** начинают сохранятся все события, связанные с процессами. Если вы хотите уменьшить число событий в Event Viewer и сохранять только информацию о событиях запуска, можно отключить данную политику и включить только расширенную политику аудита **Audit Process Creation** (**Windows Settings**-> **Security Settings** -> **Advanced Audit Policy Configurations** -> **System Audit Policy** -> **Detailed Tracking**).

![Политика аудита запуска процессов в Windows - Audit Process Creation](https://winitpro.ru/wp-content/uploads/2022/04/politika-audita-zapuska-processov-v-windows-audi.png)

Чтобы в события аудита записывалась информация о параметрах запуска процессов (аргументы, с которыми запускаются программы), включите также параметр GPO **Include command line in process creation events** в **Computer Configuration** -> **Administrative Templates** -> **System** -> **Audit Process Creation.**

![параметр GPO Include command line in process creation events](https://winitpro.ru/wp-content/uploads/2022/04/parametr-gpo-include-command-line-in-process-creat.png)

После включения этой политики в аргументе** Process Command Line** видно, с каким аргументом запускался тот или иной процесс.

![аргумент, с котороым запускалась программа/процесс в Windows](https://winitpro.ru/wp-content/uploads/2022/04/argument-s-kotoroym-zapuskalas-programma-process.png)

 Не забудьте увеличить размер журнала Security со стандартных 20 Мб. Это позволит хранить история запуска приложения за более длительный период. Для этого откройте свойства журнала Security и увеличьте значение параметра **Maximum log size.**
![увеличить размер журнала security](https://winitpro.ru/wp-content/uploads/2022/04/uvelichit-razmer-zhurnala-security.png)

Для анализа программ, запущенных пользователем можно использовать фильтры Event Viewer. Но это не очень удобно. Ниже показано несколько PowerShell скриптов который позволят вам получить удобные списки событий с историей запуска приложений пользователями. Для получения событий из журнала Event Viewer мы будем использовать команду **Get-WinEvent**:

$processhistory = @()
$today = get-date -DisplayHint date -UFormat %Y-%m-%d
$events=Get-WinEvent -FilterHashtable @{
LogName = 'Security'
starttime="$today"
ID = 4688
}
foreach ($event in $events){
$proc = New-Object PSObject -Property @{
ProcessName=$event.Properties\[5\].Value
Time=$event.TimeCreatedCommandLine=$event.Properties\[8\].Value

User=$event.Properties\[1\].Value
ParentProcess=$event.Properties\[13\].Value
}
$processhistory += $proc
}
$processhistory| Out-GridView

 

Данный PowerShell скрипт выберет все события запуска программ за сегодняшний день и выведет список процессов, времени запуска и пользователях в графическую таблицу Out-GridView.

![powershell скрипт выбора события запуска приложения в event viewer](https://winitpro.ru/wp-content/uploads/2022/04/powershell-skript-vybora-sobytiya-zapuska-prilozheni.png)

Полученный массив объектов можно использовать для выполнения различных запросов.

Например,

- Найти всех пользователей, которые запускали определённое приложение: $proc_name=”notepad++.exe”
  $processhistory | where-object {$_.ProcessName –like “\*$proc_name\*”}|out-gridview![вывести кто запускал программу на компьютере](https://winitpro.ru/wp-content/uploads/2022/04/vyvesti-kto-zapuskal-programmu-na-kompyutere.png)
- Вывести список программ, которые запускал сегодня определенный пользователь:
  $username="aivanov"
  $processhistory | where-object {$_.User –like “\*$username\*”}|out-gridview

Такие скрипты часто используем для анализа запуска программ пользователей на серверах RDS фермы.

Также история запуска программ в Windows ведется в файле **%SystemRoot%\\AppCompat\\Programs\\Amcache.hve**. Файл заблокирован Windows и прочитать его можно только, загрузившись с LiveCD или загрузочного/установочного диска. В файле есть метки запуска, установки/удаления программы, контрольные суммы исполняемого файла (SHA1). Для преобразования этого бинарного файла в текстовый формат нужно использовать сторонние утилиты (например, **regripper**).

Также напоминание, что PowerShell также ведет собственную историю запущенных команд.
