Скрипт для проверки состояния службы Windows
@Echo Off
Set ServiceName=dnscache
:: Получаем состояние службы, проверяем запущена ли
SC queryex %ServiceName%|Find "STATE"|Find "RUNNING">Nul&&(
rem Попытка остановить
Net stop %ServiceName%>nul||(
rem Если через net stop не вышло остановить, спрашиваем PID
For /F "tokens=3" %%A In ('SC queryex %ServiceName%^|Find "PID"') Do (
rem Завершаем процесс вместе с зависящими службами, используя полученный PID
TaskKill /F /T /PID %%A>nul
rem Задержка для обновления статуса службы после завершения
Ping -n 4 127.0.0.1>nul
)
rem
Net stop %ServiceName% 2>nul
)
)
rem Если служба не была запущена, или уже завершена к тому времени - запускаем её
Net start %ServiceName%
0 комментариев