Войти

Показать полную графическую версию : [решено] Проверка процессов и служб с выводом.


Kainos
30-03-2014, 16:38
Дорогие форумчане. Прошу вашей помощи в написании следующего скрипта.
Услаовия такие:
Есть несколько процессов и служб проверка должна посмотреть запущенны ли процессы в tasklist и работает ли служба.

1. Если они все работают то идем к выводу 1
2. если не работает хотя бы одно условие идем к выводу 2
3. если не работает все идем к выводу 3

Сейчас все выглядит вот так:
sc query NCR.APTRA.UAWSTSSrv |>NUL find "RUNNING" && (ECHO Srevice Running) || (ECHO Service FAILURE !!!)
tasklist /FI "ImageName EQ NCR.APTRA.UAWSTSSrv.exe" |>NUL find "NCR.APTRA.UAWSTSSrv.exe" && (ECHO Server Running) || (ECHO UA WS Server FAILURE !!!)
tasklist /FI "ImageName EQ NCR.APTRA.CollectorProxyWS.exe" |>NUL find "NCR.APTRA.CollectorProxyW" && (ECHO Proxy Running) || (ECHO Proxy FAILURE !!!)

Но хотелось бы улучшить. Заранее благодарю!

Iska
30-03-2014, 16:58
Kainos, проверка процессов — лишняя, если искомая служба реализуется искомым процессом.

Kainos
30-03-2014, 17:05
Согласен но это не полный список, а служба запускает только один процесс он продублирован во второй строке.

Iska
30-03-2014, 17:53
Тогда достаточно простого:
sc.exe query "messenger" | find.exe /i "state" | find.exe /i "running" >nul && echo Service is running || echo Service stopped
Дополнительно проверять процессы служб не нужно.

Kainos
30-03-2014, 17:58
Проблема в том что служб будет 5 и все независимые. Отсюда и надобность в условиях написанных в первом посте.

Iska
31-03-2014, 02:35
Kainos, как-то так:
@echo off
setlocal enableextensions enabledelayedexpansion

set /a iFound = 0

for %%i in ("messenger" "sens" "helpsvc" "ERSvc" "srservice") do (
sc.exe query "%%~i" | find.exe /i "state" | find.exe /i "running" >nul && set /a iFound += 1
)

if %iFound% equ 0 (
echo All service stopped or not found
) else (
if %iFound% equ 5 (
echo All service are running
) else (
echo Some service stopped or not found
)
)

endlocal
exit /b 0

?!




© OSzone.net 2001-2012