CMD/BAT - [решено] Состояние службы

Ответить
Аватара пользователя
VladoSer

CMD/BAT - [решено] Состояние службы

Сообщение VladoSer »

Здравствуйте, необходимо проверить состояние службы на 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

Re: CMD/BAT - [решено] Состояние службы

Сообщение DJ Mogarych »

Powershell:



Код:

Код: Выделить всё

$service = get-service AppVClient -ErrorAction SilentlyContinue
if ($? -eq $false) {"Службы не существует в системе"}
else {
    if ($service.Status -eq "Running") {"Служба работает"}
    elseif ($service.Status -eq "Stopped") {"Служба остановлена"}
}
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Состояние службы

Сообщение Iska »

Код:

Код: Выделить всё

@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
Ответить

Вернуться в «Скриптовые языки администрирования Windows»