|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Автоматизация запущенного процесса |
|
|
CMD/BAT - Автоматизация запущенного процесса
|
Забанен Сообщения: 6 |
Здравствуйте, уважаемые форумчане. Хочу попросить Вас о помощи в написании скрипта
Попробую описать подробно задачку: На компьютере, должен постоянно быть запущен процесс sefmail.exe, но по причине человеческих рук, либо сверхестественных сил, этот процесс постоянно закрывается. (человеские руки считаю более очевидным ) Хочется чтобы скрипт, если программа не запущена- писал в лог сообщение о недоступности или в конце концов просто 0 выводил, а затем эту программу бы запускал. Путь до программы: E:\Program Files (x86)\POST\Sefmail\ Прошу помощи в автоматизации моего процесса |
|
Отправлено: 12:41, 10-06-2021 |
Забанен Сообщения: 6
|
Нашла готовый скрипт здесь: http://forum.oszone.net/thread-348778.html но он лог не пишет, если программа не работает
|
Отправлено: 12:49, 10-06-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Цитата АннаКузнецова:
|
|
Отправлено: 14:05, 10-06-2021 | #3 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата АннаКузнецова:
и да, это на PowerShell # Мониторинг процесса (каждые 5 сек), пропал - получим сообщение и запустим процесс через Хсек $proc = "calc" Function jbPrc { $query = "Select * from __InstanceDeletionEvent within 5 where TargetInstance ISA 'Win32_Process' and TargetInstance.Name like '%$proc%'" $sourceId = "job$proc" Register-CimIndicationEvent -Query $query -SourceIdentifier $sourceId -Action { Write-Host "Process '$proc' disconnected!" 'Process - False : '+(Get-Date -f 'dd.MM.yyyy-HH.mm.ss') >> log.txt Start-Sleep -s 10 start $proc } } jbPrc -программа, которую он контролирует, должна быть запущена -после этого запускается скрипт и висит ... везде, в процессах. его окно (можно свернуть. но нельзя закрывать) -в случае если процесс программы пропал будет сообщение в окне об этом и напишется время в лог -программа запустится после таймера, в данном скрипте - 10сек -все начнется заново |
|
Отправлено: 14:15, 10-06-2021 | #4 |
Забанен Сообщения: 6
|
Я запустила скрипт, при этом поменяла calc на процесс wmail. Но по моему ничего не получилось. Картинку прилагаю. Подскажите пожалуйста, что делаю не так
|
|
Отправлено: 14:39, 10-06-2021 | #5 |
Забанен Сообщения: 6
|
Elven, я имела ввиду этот скрипт:
'******************************************************************* ' Описание: Запуск отсутствующей программы '******************************************************************* Exe = "Notepad.exe" ' Исполнимый файл программы PathExe = "C:\WINDOWS\system32" ' Путь к файлу (без \ на конце) On Error Resume Next If Err.Number = 0 Then Set WMI = GetObject("winMgmts:") Set Processes = WMI.ExecQuery("SELECT * FROM Win32_Process Where Name=""" + Exe + """") Present = False For Each Process In Processes Present = (UCase(Process.Name) = UCase(Exe)) ' MsgBox Process.Name + vbCrLf + Exe Next Set WS = CreateObject("WScript.Shell") If Not Present Then WS.Exec PathExe + "\" + Exe End If End If |
Отправлено: 14:54, 10-06-2021 | #6 |
fascinating rhythm Сообщения: 6494
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 16:17, 10-06-2021 | #7 |
Забанен Сообщения: 6
|
DJ Mogarych,
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 636 58 41588 78456 289 4*617,75 120 sefwmail |
Отправлено: 17:03, 10-06-2021 | #8 |
fascinating rhythm Сообщения: 6494
|
Профиль | Отправить PM | Цитировать Что-то вроде того (powershell):
if (!(get-process sefwmail -ErrorAction SilentlyContinue)) { "$((get-date).tostring()) Sefmail не запущен, запускаю" >> 'E:\Program Files (x86)\POST\Sefmail\SefmailErrorLog.txt' Start-Process 'E:\Program Files (x86)\POST\Sefmail\sefmail.exe' } Программа - powershell Добавить аргументы: |
------- Отправлено: 17:50, 10-06-2021 | #9 |
Забанен Сообщения: 6
|
DJ Mogarych, очень Вам признательна все зааботало. Только вопрос- скрипт ведь не проверяет запущен ли процесс? потому как, работает программа или нет, он в лог пишет Sefmail не запущен, запускаю
|
Отправлено: 20:04, 10-06-2021 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Проверки запущенного процесса. | Svnkill | Скриптовые языки администрирования Windows | 8 | 19-05-2021 14:42 | |
CMD/BAT - Проверка занимаемой памяти запущенного процесса | KaDirZhan | Скриптовые языки администрирования Windows | 7 | 29-04-2021 01:03 | |
Проверка запущенного процесса | Anarasius | AutoIt | 2 | 25-06-2014 11:39 | |
.NET - Получение PID процесса, запущенного из программы | Delirium | Программирование и базы данных | 2 | 07-12-2009 02:17 | |
Java - Отслеживание состояния запущенного процесса | EvgeniyQQQ | Программирование и базы данных | 15 | 02-10-2007 13:20 |
|