Я нашел решение
Сценарий проверит, запущена ли служба и, если она не запущена, запустит ее. Измените переменную ServiceName только на имя службы, которую вы хотите проверить, например Windows Обновление - это wuauserv.
PowerShell
@ECHO OFF
SET SvcName=ServiceName
SC QUERYEX "%SvcName%" | FIND "STATE" | FIND /v "RUNNING" > NUL && (
ECHO %SvcName% is not running
ECHO START %SvcName%
NET START "%SvcName%" > NUL || (
ECHO "%SvcName%" wont start
EXIT /B 1
)
ECHO "%SvcName%" is started
EXIT /B 0
) || (
ECHO "%SvcName%" is running
EXIT /B 0
)
Если вы хотите использовать его в качестве запланированного Задача, вы можете изменить строку SET SvcName = Servicename на SET SvcName =% ~ 1, затем вы можете запустить ее как check-service.cmd "ServiceName".