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

VladoSer 09-12-2021 10:46 2974723

Состояние службы
 
Здравствуйте, необходимо проверить состояние службы на 3 статуса:
Запущена
Не запущена
Не существует вообще в системе

Имеется такой приблизительный скрипт:
Код:

echo AppVClient:
set AppVClient="HKLM\SYSTEM\CurrentControlSet\Services\AppVClient" /v "Start"
reg query %AppVClient% >nul 2>&1
if "%errorlevel%"=="0" (
for /f "tokens=3" %%i in (' reg query %AppVClient% 2^>nul ') do set /a "value=%%i"
if "%value%"=="4" (echo Не запущена) else (echo Запущена)
) else (
echo Службы не существует в системе.
)

Однако, какое бы число в параметре "Start" не ставил, мне пишет что она все равно запущена. В чем ошибка?

DJ Mogarych 09-12-2021 13:21 2974737

Powershell:
Код:

$service = get-service AppVClient -ErrorAction SilentlyContinue

if ($? -eq $false) {"Службы не существует в системе"}
else {
    if ($service.Status -eq "Running") {"Служба работает"}
    elseif ($service.Status -eq "Stopped") {"Служба остановлена"}
}


Iska 10-12-2021 05:51 2974779

Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set sServiceName=bla-bla-bla
rem set sServiceName=BDESVC
rem set sServiceName=LanManServer

>nul 2>&1 sc.exe query "%sServiceName%" && (
        sc.exe query "%sServiceName%" | >nul 2>&1 find.exe /i "RUNNING" && echo Service [%sServiceName%] is running.|| rem Nothing to do
        sc.exe query "%sServiceName%" | >nul 2>&1 find.exe /i "STOPPED" && echo Service [%sServiceName%] stopped.|| rem Nothing to do
) || (
        echo Service [%sServiceName%] not exists.
)

endlocal
exit /b 0



Время: 23:45.

Время: 23:45.
© OSzone.net 2001-