PDA

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


VladoSer
09-12-2021, 10:46
Здравствуйте, необходимо проверить состояние службы на 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
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
@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




© OSzone.net 2001-2012