Компьютерный форум 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=280044)

Kainos 30-03-2014 16:38 2330590

Проверка процессов и служб с выводом.
 
Дорогие форумчане. Прошу вашей помощи в написании следующего скрипта.
Услаовия такие:
Есть несколько процессов и служб проверка должна посмотреть запущенны ли процессы в 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 2330611

Kainos, проверка процессов — лишняя, если искомая служба реализуется искомым процессом.

Kainos 30-03-2014 17:05 2330619

Согласен но это не полный список, а служба запускает только один процесс он продублирован во второй строке.

Iska 30-03-2014 17:53 2330639

Тогда достаточно простого:
Код:

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 2330642

Проблема в том что служб будет 5 и все независимые. Отсюда и надобность в условиях написанных в первом посте.

Iska 31-03-2014 02:35 2330772

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


?!


Время: 20:15.

Время: 20:15.
© OSzone.net 2001-