Системное администрирование

Нужен скрипт который проверял бы состояние службы и если она не запущена, запускал бы её. Спасибо.

Есть служба в windows server 1c mobile assistance она периодически останавливается. Вот хотелось бы такой скрипт который проверял бы статус службы и если она остановленна или не запущена, запускал бы её.
Как вариант с "уведомлением" и проверкой состояния.
@echo off
set service=имя_вашей_службы
for /f "skip=3 tokens=1-3,* delims= " %%i in ('sc query %service%') do (
if not %%k==4 (echo %service% : Abnormal state =^> starting...&sc start %service%) else (echo %service% : Normal state)
exit
)
echo %service% : not found(?)

Как это работает: sc query запрашивает состояние службы и возвращает ответ что-то вроде

Имя_службы: ClickToRunSvc
Тип : 10 WIN32_OWN_PROCESS
Состояние : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
Код_выхода_Win32 : 0 (0x0)
Код_выхода_службы : 0 (0x0)
Контрольная_точка : 0x0
Ожидание : 0x0

Анализируем вывод. skip=3 пропускает первые строки вывода, анализируя строку "Состояние" и разбивает её по пробелам. соотв. смотрим код состояния в %%k
4 => служба в рабочем состоянии.
Если она не равна 4 - пишем ненормальное состояние и пробуем её запустить. иначе пишем нормальное состояние.
Т. к. остальные строчки нас не интересуют - тут-же выходим из .cmd

Почему так - ведь можно было findstr состояние и т. д. - код не привязан к языку на ОС. Будет работать и на англ. версии и на русской и на китайской =)

Если не нужен вывод от команды запуска службы подправьте sc start %service%>nul

ЗЫЖ Обратите внимание - имя не равно "отображаемое имя" и "описание". Надо ставить вот это:
Аркадий Калужский
Аркадий Калужский
84 764
Лучший ответ
Сергей Коромыслов Спасибо. То что нужно
простейший вариант - но, правда, неизящный - периодически выполнять
net start имя_службы