Я знаю, что на эту тему есть несколько похожих сообщений, но я хотел бы знать, как повторно запустить службу, которая уже была остановлена. Есть ли .летучая мышь или .vbs сценарий, который проверяет, остановлена ли служба, а затем перезапускает ее, если она остановлена и запускается в цикле?
Спасибо за помощь!
Обновление 7.IX.2012 @ 11.25 Насколько я понимаю, есть несколько сообщений, в которых подробно рассказывается об использовании SC
и net stop
& net start
, большинство из этих сообщений касается сначала остановки службы, а затем ее перезапуска. Я имею дело со службой, которая уже вышла из строя или остановилась, и мне нужно проверить, остановлена ли она, а затем перезапустить ее. Надеюсь, я проясняю это. Также было бы неплохо прикрепить к нему файл журнала.
Запустить службу в PowerShell очень просто (на примере диспетчера очереди печати):
Start-Service spooler
Вы также можете проверить, запущена ли служба, и перезапустить ее, если это не так:
$Service = Get-Service -Name spooler
if ($Service.Status -ne "Running")
{
(Get-Date).ToString() + " - Service stopped." >> C:\Scripts\log.txt
Start-Service spooler
}
Однако я бы не рекомендовал зацикливать сценарий бесконечно. Быстрое и грязное решение - настроить этот скрипт на периодическое выполнение с запланированной задачей.
Редактировать: Добавлена строка для добавления записи в файл журнала.
В качестве примера создайте командный файл C: \ derp.bat
Содержимое командного файла может выглядеть примерно так:
net start "Service Name"
C:\derp.bat
Первая строка: если служба уже запущена, ничего не произойдет. Если он не работает, он попытается запуститься.
Вторая строка: перезапускает командный файл.
Вы можете бросить ping 127.0.0.1 -n 60 посередине, если хотите, чтобы он пробовал каждые 60 секунд.
Команда Sc.
Попробуйте sc /? За помощью.
Он может проверить статус службы. Исходя из этого, вы можете (повторно) запустить при необходимости.
Судя по тому, как вы спрашиваете после прочтения своих комментариев, просто сделайте это и готово:
http://www.netwrix.com/windows_services_monitoring_freeware.html
NetWrix Service Monitor - это бесплатный инструмент для мониторинга критических служб Windows и, при необходимости, их перезапуска после сбоя. Инструмент отслеживает все службы автоматического запуска на нескольких серверах одновременно и отправляет предупреждения по электронной почте, когда одна или несколько служб неожиданно останавливаются. Дополнительная функция автоматического перезапуска гарантирует, что все отслеживаемые службы будут запущены и работают без простоев. Инструмент легкий и очень простой в настройке: установите, введите имена компьютеров и укажите свой адрес электронной почты.
Характеристики и преимущества:
One installation watches multiple computers at a time;
Monitors all Windows services with startup type set to Automatic;
Sends alerts by e-mail when services stop or fail to start at boot time;
Optionally starts failed services;
Optionally reboots computers when one or more services fail;
Available at absolutely no cost.
Мы используем WUG, другие используют NAGIOS, Zenoss, что угодно ... но вышеперечисленное бесплатно и относится к вашему вопросу.