Добавив ярлык программы в каталог %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup, можно сделать так, что эта программа станет автоматически запускаться после загрузки включение компьютера и загрузки рабочего стола. Но давайте представим другую ситуацию. Предположим, вы хотите, чтобы программа запускалась не в момент загрузки Windows, а в момент запуска или завершения работы другой программы.
Использовать для этих целей сторонние менеджеры? В принципе, можно поискать инструмент, который будет выполнять подобные задачи, но к чему засорять систему сторонними фоновыми процессами, если реализовать этот не особо хитрый трюк можно средствами самой Windows.
Для дела вам понадобятся редактор локальных групповых политик и планировщик заданий.
Первым делом нужно включить и настроить аудит процессов.
Откройте командой gpedit.msc редактор локальных групповых политик и перейдите по цепочке Конфигурация компьютера -> Конфигурация Windows -> Политики безопасности -> Локальные политики -> Политика аудита. В правой колонке откройте двойным кликом свойства политики «Аудит отслеживания процессов».
Отметьте флажком пункт «Успех», сохраните настройки.
И обновите конфигурацию политик командой gpupdate /force в командной строке или PowerShell.
Отныне все запускаемые в Windows процессы будут отслеживаться и заноситься в раздел системного журнала событий Журналы Windows -> Безопасность. События эти легко найти — они имеют идентификатор 4688 и описание «Создан новый процесс». Если же открыть свойства события, то можно будет увидеть, какой именно процесс запущен и кем он запущен. Так, из этого скриншота хорошо видно, что был запущен процесс notepad.exe.
В рамках аудита отслеживаются не только стартующие, но и завершаемые процессы.
Если Блокнот (процесс notepad.exe) закрыть, в разделе журнала событий «Безопасность» появится запись с кодом 4689 и описанием «Выполнен выход из процесса».
Полученных сведений вполне достаточно, чтобы создать в планировщике задачу, которая станет выполняться в момент занесения в журнал соответствующей записи.
Допустим, вы хотите, чтобы в момент запуска Блокнота у вас автоматически запускалась командная строка.
Откройте командой taskschd.msc планировщик заданий, создайте новое задание.
Переключитесь на вкладку «Действия».
И создайте задачу — в данном примере запуск исполняемого файла cmd.exe.
Затем переключитесь на вкладку «Триггеры», нажмите «Создать».
И выберите начать задачу «При событии», параметры задания выберите «Настраиваемое» и нажмите «Создать фильтр события».
В открывшемся окошке в поле «Журналы событий» выберите «Безопасность».
Код события выставьте 4688, а в поле «Ключевые слова» выберите «Аудит успеха».
Теперь нужно уточнить, при запуске какого именно процесса должно выполняться задание.
Для этого придется вручную отредактировать XLM-код запроса.
Переключитесь в окошке фильтра события на вкладку «XML» и включите ручное редактирование запроса, установив галку в чекбоксе «Изменить запрос вручную».
Отредактируйте код XML так, как показано на скриншоте.
Файл с кодом запроса можно скачать по ссылке disk.yandex.ru/d/kg_mBQ8QX-tEkQ.
Сохраните задание.
Если теперь запустить Блокнот, должна открыться командная строка.
Аналогичным образом создается задание для запуска одного процесса при завершении другого. В этом случае в фильтре событий нужно указать ID 4689, этот же идентификатор события указывается и в XML-коде, также в запросе следует заменить «NewProcessName» на «ProcessName», так как этот параметр указывается в свойствах события завершение процесса.
К сожалению, по какой-то причине задание на запуск процесса CMD после завершения работы Блокнота у нас не сработало, и мы были бы благодарны, если бы кто-то из наших читателей подсказал, как правильно сформировать XLM запрос, возможно, мы где-то допустили ошибку.
Добрый день!
Если в XML оставить EventID=4689 и добавить код проверки на процесс так:
-----
and
*[EventData[Data[@Name='ProcessName'] and (Data='C:\Windows\System32\notepad.exe')]]
----------
То Cmd.exe запускается после Notepad.exe
супер, спасибо автору статьи!!!
Спасибо!!! Работает. Пол Интернета перерыл.