![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Проверки запущенного процесса. |
|
CMD/BAT - Проверки запущенного процесса.
|
Новый участник Сообщения: 43 |
У мен есть программа которая должна работать 24/7 но бывает что она сама по себе может крашнуться. Как сделать так чтобы батник чекал запущена программа или нет и если нет то запускал ее, желательно с зарежкой в 1 минуту. И нужно чтобы батник проверял это постоянно
|
|
Отправлено: 14:27, 16-05-2021 |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать Нашел готовый vbs-скрипт.
'******************************************************************* ' Описание: Запуск отсутствующей программы '******************************************************************* 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 |
------- Отправлено: 15:53, 16-05-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать В роли:
Цитата Svnkill:
Скрытый текст
Option Explicit Const strProcessPath = "c:\windows\system32" Const strProcessName = "notepad.exe" Dim objSWbemServicesEx Dim objSWbemEventSource Set objSWbemServicesEx = WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2") objSWbemServicesEx.Get("Win32_Process").Create strProcessPath & "\" & strProcessName, strProcessPath, Nothing, vbEmpty Set objSWbemEventSource = objSWbemServicesEx.ExecNotificationQuery( _ "SELECT * FROM __InstanceDeletionEvent WITHIN 1 " & _ "WHERE TargetInstance ISA 'Win32_Process' AND " & _ "TargetInstance.Name = '" & strProcessName & "'" _ ) Do objSWbemEventSource.NextEvent WScript.Sleep 60 * 1000 objSWbemServicesEx.Get("Win32_Process").Create strProcessPath & "\" & strProcessName, strProcessPath, Nothing, vbEmpty Loop Set objSWbemEventSource = Nothing Set objSWbemServicesEx = Nothing WScript.Quit 0 |
|
Отправлено: 17:14, 16-05-2021 | #3 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать PowerShell (не ниже 5)
# Мониторинг процесса (каждые 5 сек), пропал - получим сообщение и запустим процесс через 1мин $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!" Start-Sleep -s 60 start $proc } } jbPrc |
Последний раз редактировалось alpap, 17-05-2021 в 13:53. Отправлено: 13:48, 17-05-2021 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать alpap, почему like, почему не «=»?
|
|
Отправлено: 16:54, 17-05-2021 | #5 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Iska,
процесс Calculator для разных операционных систем называется по-разному, думаю не только этот процесс и орфография у некоторых хромает, поэтому - на всякий случай. |
Отправлено: 17:12, 17-05-2021 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать alpap, спасибо, ясно.
Я потому нынче пользую notepad.exe в качестве подопытного кролика. |
Отправлено: 19:17, 17-05-2021 | #7 |
(*.*) Сообщения: 36574
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 20:11, 17-05-2021 | #8 |
Старожил Сообщения: 193
|
Профиль | Отправить PM | Цитировать |
Отправлено: 14:42, 19-05-2021 | #9 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Проверка занимаемой памяти запущенного процесса | KaDirZhan | Скриптовые языки администрирования Windows | 7 | 29-04-2021 01:03 | |
CMD/BAT - [решено] Помогите с написанием bat файла для проверки запущенного процесса. | Stranger404 | Скриптовые языки администрирования Windows | 17 | 17-08-2020 22:50 | |
Проверка запущенного процесса | Anarasius | AutoIt | 2 | 25-06-2014 11:39 | |
.NET - как контролировать ход выполнения запущенного процесса | RUVATA | Программирование и базы данных | 3 | 31-08-2010 14:00 | |
Java - Отслеживание состояния запущенного процесса | EvgeniyQQQ | Программирование и базы данных | 15 | 02-10-2007 13:20 |
|