|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Мониторинг и завершение вновь запущенных приложений |
|
CMD/BAT - Мониторинг и завершение вновь запущенных приложений
|
Новый участник Сообщения: 4 |
Здравствуйте уважаемые форумчане!
Задача: При старте генерируется файл со списком запущенных процессов и приложений, затем с заданным интервалом список сравнивается с текущими запущенными процессами и если обнаруживается новый он завершается. С генерацией лога запущенных приложений при старте батника проблем нет, не могу сообразить как их сравнивать. С for и if подружиться никак не получается... @echo off tasklist >log.txt goto sleep :scan tasklist >templog.txt for %%i in (templog.txt) do echo %%i>>log.txt for /f "delims=" %%i in (log.txt) do taskkill /f /im "%%i" if erorlevel 1 goto scan :sleep sleep 10 goto scan :end del /q /f log.txt del /q /f templog.txt exit В самой важной части кода конечно полная билибирда: for %%i in (templog.txt) do echo %%i>>log.txt for /f "delims=" %%i in (log.txt) do taskkill /f /im "%%i" if erorlevel 1 goto scan По идее при обнаружении первой добавившейся строчки в templog.txt (запущен новый процесс/приложение) скрипт должен убить процесс и секция scan должна быть перезапущена минуя sleep на случай если были еще изменения, если их нет пауза. Помогите! |
|
Отправлено: 13:12, 11-11-2011 |
Старожил Сообщения: 210
|
Профиль | Отправить PM | Цитировать God_Zilla, Вы выбрали очень неудобный способ решения этой задачи. Советую обратить внимание на возможности WMI: создание подписки на событие запуска процесса.
|
Отправлено: 14:27, 11-11-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать God_Zilla, у меня давно и успешно работает вот такой скрипт:
А вот список "разрешенных процессов" для него: Всё, что вам нужно сделать - это генерировать whitelist.txt при старте, и периодически запускать основной скрипт, который будет сравнивать процессы и подчищать недавно запущенные. Ну и еще, там защита от запуска на vista/win7 стоит, потому что у меня их нету, следовательно, работу скрипта я не проверял на них. Чтобы всё-таки запустить, внесите номер версии в строку Или (так будет даже проще) закомментируйте\удалите эти две строки в начале: |
Отправлено: 19:11, 11-11-2011 | #3 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Anonymоus благодарю, очень полезно!
В порядке обенм опытом, решение предложенное на соседнем форуме: @echo off if exist log.txt del /q /f log.txt for /f "delims=," %%i in ('tasklist /FO CSV 2^>nul') do echo %%i>>log.txt echo "ntvdm.exe">>log.txt goto sleep :scan tasklist /FI "Imagename eq grand.exe" 2>nul | findstr "grand.exe" >nul if errorlevel 1 goto end for /f "delims=," %%i in ('tasklist /FO CSV 2^>nul') do ( findstr %%i log.txt >nul || taskkill /f /im %%i ) :sleep sleep 10 goto scan :end del /q /f log.txt exit В скрипте предусмотрен контроль работы одного приложения "grand.exe" если он не обнаруживается в списке активных процессов скрипт останавливается "goto end". Разрешенные приложения (не запушенные в момент старта скрипта), в данном примере "ntvdm.exe", дописываются в log.txt командой "echo "ntvdm.exe">>log.txt" В основном батнике проверка OS реализованна так: Задача решена, всем большое спасибо! |
Отправлено: 07:20, 13-11-2011 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] Принудительное завершение приложений | interminable | Microsoft Windows 2000/XP | 11 | 18-09-2010 16:52 | |
[решено] Аварийное завершение работы приложений (ASUS P5B-VM SE / Intel(R) Core(TM)2 CPU 4300) | pnck | Непонятные проблемы с Железом | 10 | 11-10-2009 11:22 | |
Разное - Завершение работы приложений | ILIS | Microsoft Windows Vista | 5 | 24-12-2008 12:46 | |
Разное - Количество одновременно запущенных приложений или окон | Sandjar | Microsoft Windows 2000/XP | 7 | 21-05-2008 16:28 | |
Разное - предел запущенных приложений? | parovozfd | Microsoft Windows Vista | 3 | 18-07-2007 11:18 |
|