Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Скрипт проверки процесса, при его наличии перезугрка компьютера (http://forum.oszone.net/showthread.php?t=303541)

Mihanbka 06-08-2015 14:50 2537870

Скрипт проверки процесса, при его наличии перезугрка компьютера
 
Приветствую товарищи! подскажите пожалуйста, можно ли сделать скрипт с проверкой на наличие процесса, например такого как iexplore.exe если процесс не обнаруживается, компьютер уходит в перезагрузку. На данном форуме находил скрипты поиска процесса, и при его отсутствие, запуск этого самого процесса, пробовал переделать под свою цель, но сказалась нехватка в прямых руках.

Blast 06-08-2015 14:58 2537873

cmd:
Код:

@Echo Off
SetLocal EnableExtensions

Set ProcessName=myprocess.exe
TaskList /FI "ImageName EQ %ProcessName%" | Find /I "%ProcessName%"
If %ErrorLevel% NEQ 0 Start shutdown.exe -r -t 00


Mihanbka 06-08-2015 15:06 2537875

Спасибо Вам! мил человек! извиняюсь за наглость, а можно ли сделать это скриптом который будет постоянно крутится, и проверять?

Elven 06-08-2015 15:43 2537896

Mihanbka, есть два варианта: либо в шедулер с указанием любого времени, либо вот так
Код:

@Echo Off
SetLocal EnableExtensions

Set ProcessName=myprocess.exe
:bgn
TaskList /FI "ImageName EQ %ProcessName%" | Find /I "%ProcessName%"
If %ErrorLevel% NEQ 0 Start shutdown.exe -r -t 00
GOTO bgn

правда некошерно как-то...

Mihanbka 06-08-2015 15:47 2537901

некошерно как-то... :D Спасибо Товарищи!

Blast 06-08-2015 15:59 2537909

Можно в PowerShell:
Код:

$target = "myprocess"
$process = Get-Process | Where-Object {$_.ProcessName -eq $target}
while ($true)
{
while (!($process))
{
$process = Get-Process | Where-Object {$_.ProcessName -eq $target}
start-sleep -s 5
}
if ($process)
{
$process.WaitForExit()
$process = Get-Process | Where-Object {$_.ProcessName -eq $target}
do {Restart-Computer -Force}
while (1)
}
}

Сохранить это в текстовый файл с любым именем и расширением ps1 и запихнуть в планировщик заданий, чтобы не светилось окно PS.
Будет мониторить наличие процесса каждые 5 сек. Если процесс пропал, то выполнится перезагрузка.
Имя процесса поставите свое (выделено красным), расширение процесса указывать не нужно.

Так немного кошернее :)

Mihanbka 07-08-2015 12:42 2538316

Blast,Elven Спасибо Вам!


Время: 14:38.

Время: 14:38.
© OSzone.net 2001-