Назад | Перейти на главную страницу

Перезапустить службу Windows из сценария?

Я знаю, что на эту тему есть несколько похожих сообщений, но я хотел бы знать, как повторно запустить службу, которая уже была остановлена. Есть ли .летучая мышь или .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, что угодно ... но вышеперечисленное бесплатно и относится к вашему вопросу.