- Перезапуск служб Windows из командной строки
- Способ 1
- Способ 2
- Комментарии
- Как перезапустить службу в Windows 7, 8 и 10
- Перезапуск через Панель управления
- Перезапуск через Командную строку
- Как я могу автоматически перезапустить службу Windows, если она падает?
- Энциклопедия Windows
- Настройка автоматического перезапуска службы
- Управляем службами Windows с помощью PowerShell. Часть 2
- STOP-SERVICE
- START-SERVICE
- RESTART-SERVICE
- ПРИОСТАНОВКА И ВОЗОБНОВЛЕНИЕ РАБОТЫ
- УДАЛЕННЫЕ СЛУЖБЫ
- УСТАНАВЛИВАЕМ УДАЛЕННЫЙ СТАТУС
- УСТАНАВЛИВАЕМ ТИП АВТОЗАПУСКА СЛУЖБЫ
BDSM — Безграничное Добро, Сострадание и Милосердие
Перезапуск служб Windows из командной строки
01.06.09 13:24 / Обновлено 16.11.11 17:17 | Версия для печати | Windows | Твики |
Способ 1
Подойдёт службам, которые запускаются отдельным исполняемым файлом.
Запускаем services.msc и смотрим свойства интересующей службы. На вкладке «Общие» запоминаем команду запуска и имя исполняемого файла.
Имейте в виду, что в этом случае служба запустится от имени текущего пользователя.
Как вариант, можно указать автоматический перезапуск службы в случае любых сбоев — в том же окне свойств, на вкладке «Восстановление». При этом явный запуск службы не потребуется и будет произведён сразу после её остановки. С записью об ошибке в журнал.
Способ 2
Здесь имя_службы — это выводимое имя, то есть ровно то, что отображается в списке служб. Если имя на русском, например «Автоматическое обновление», то в команду тоже надо писать на русском. Имена с пробелами ограничиваются кавычками:
И будьте внимательны при написании скриптов: русскоязычные имена служб надо вводить в DOS-кодировке!
З.Ы. При чём тут «net» — непонятно, но это способ перезапуска от производителя.
Комментарии
2011.10.27 22:52:56 #cid7084 |
При чём тут «net» — непонятно, но это способ перезапуска от производителя.
Видимо потому, что есть возможность перезапуска службы по сети. При условии что у пользователя есть права на выполнение данного действа 😉
2011.11.16 18:04:12 #cid8116 |
Видимо потому, что есть возможность перезапуска службы по сети. При условии что у пользователя есть права на выполнение данного действа 😉
Вот только изначально (по сути) перезапуск службы — локальная операция. А судя по всему, даже при локальном перезапуске используется RPC.
oermolaev
2011.12.28 11:23:55 #cid11476 |
Приятно что первая позиция результатов поиска по моему запросу отправила на сайт который давно у меня в закладках 🙂
2011.12.28 17:10:58 #cid11507 |
#cid11476, oermolaev
🙂 Сам иногда охереваю.
Ищу чего-нибудь в интернете и на себя натыкаюсь.
2012.06.24 14:32:53 #cid31185 |
я больше охриневаю от синтаксиса cmd..
2012.06.24 20:37:12 #cid31200 |
я больше охриневаю от синтаксиса cmd..
Да, полная каша в синтаксисе утилит. Несмотря на то, что всё, казалось бы, написано в одной конторе.
Левая рука не знает, что делает правая.
Дмитрий
2019.01.28 10:37:14 #cid92128 |
Капча крутая) есть исходный код?
2019.04.25 02:08:46 #cid92164 |
#cid92128, Дмитрий
Капча крутая) есть исходный код?
Конечно есть. Сам писал.
ldgdemon
2019.10.11 16:27:29 #cid92250 |
подскажите как запустить службу с параметром «Вход в систему: с системной учётной записью»
Если вы видите эту надпись,
значит, новый движок уже в работе
и страница отображается с помощью него.
Техническая информация
Время подготовки страницы: 0.000940 c.
Кэш: частичный.
Как перезапустить службу в Windows 7, 8 и 10
При сбое в работе любой службы Windows нужно либо перезапустить службу, либо перезагрузить систему. Перезагрузка компьютера неудобна, поскольку занимает время и закрывает все окна. Если не получается остановить службу через Панель управления, можно перезапустить службу Windows из командной строки.
Открыть настройки служб Windows можно 4 способами:
- Нажать Win+R, в окне Выполнить ввести services.msc и нажать Enter. Откроется Диспетчер служб.
- Нажать Пуск, в поиске ввести Службы, открыть настройки.
- Открыть Панель управления -> Система и безопасность -> Администрирование -> Службы.
- Нажать ПКМ на кнопке Пуск или клавиши Win+X. Перейти в «Управление компьютером -> Службы и приложения -> Службы.
К счастью, от версии к версии Windows этот раздел настроек практически не изменялся. В Windows 7, Vista, 8 и 10 «Службы» будут выглядеть почти одинаково.
Перезапуск через Панель управления
Возможностей стандартных настроек в Панели управления достаточно, чтобы останавливать и запускать системные сервисы. Есть возможность полностью отключить ненужные службы — это немного повысит производительность устройства.
Остановка и повторный запуск служб Windows:
- Открыть любым способом окно Службы, найти нужную.
- Нажать по нужной службе правой кнопкой мыши и выбрать Перезапустить.
- Если кнопка Перезапустить неактивна — нажать Свойства.
- Нажать Остановить, дождаться остановки службы.
- Нажать на кнопку Запустить.
Если служба зависла или не остановилась — открыть диспетчер задач (Ctrl+Alt+Del) и завершить все процессы, связанные с проблемной службой.
Перезапуск через Командную строку
Если Панель управления не справляется со своими обязанностями, отключить или перезапустить службу можно через Командную строку (cmd.exe). Командная строка должна быть запущена от имени администратора.
Для управления службами существует 4 команды, дублирующие функционал Панели управления:
- net stopservice — Остановить выбранную службу.
- net startservice — Запустить.
- net pauseservice — Приостановить обслуживание.
- net continueservice — Возобновить обслуживание.
Для работы со службой нужно знать её название. Например, запуск службы Windows Audio будет выполнен по команде net start audiosrv. Здесь audiosrv — системное название службы.
Чтобы его узнать, нужно зайти в свойства. Нужная строка будет в самом верху — «Имя службы». Вывести списком имена всех активных служб можно прямо в Командной строке, введя sc query type= service.
Через консоль можно не только перезапустить службу, но и изменить её тип запуска командой sc config *СЛУЖБА* start=*ТИП_ЗАПУСКА*.
Доступные типы запуска:
- auto — Автоматически.
- demand — Вручную (по требованию).
- delayed-auto — Отложенный запуск.
Например, команда sc config audiosrv start=auto переведет службу Windows Audio в тип запуска Автоматически.
Для полноты нужно упомянуть еще один способ перезапуска — через Диспетчер задач. Для этого нужно нажать комбинацию клавиш Ctrl+Alt+Del (или Ctrl-Shift-Esc), выбрать Диспетчер задач и перейти на вкладку Службы. По нажатию правой кнопки мыши на любой службе появляется контекстное меню, откуда доступна и остановка, и запуск, и перезагрузка.
Как я могу автоматически перезапустить службу Windows, если она падает?
У меня есть служба Windows, которая неожиданно выходит каждые несколько дней. Есть ли простой способ следить за тем, чтобы он быстро перезагружался в случае сбоя?
Под приложением Службы выберите свойства рассматриваемой службы.
Посмотрите вкладку восстановления — есть все виды опций — я бы установил First & Second Failure для перезапуска службы, Third для запуска пакетной программы, которая BLAT отправляет электронное письмо с третьим уведомлением об ошибке .
Вы также должны установить Reset Fail Count на 1, чтобы ежедневно сбрасывать счетчик ошибок.
РЕДАКТИРОВАТЬ:
Похоже, вы можете сделать это через командную строку:
Ваш файл MyBatchFile.CMD может выглядеть так:
Откройте Services.msc, дважды щелкните сервис, чтобы открыть Свойства сервиса, есть вкладка Восстановление, и эти настройки должны позволить вам перезапустить сервис в случае сбоя.
Попробуйте установить время восстановления на ноль:
Эквивалент командной строки:
SC failure YOUR_SERVICE_NAME reset= 0 actions= restart/0/restart/0/restart/0
В любом случае, автоматическое восстановление не работает должным образом, поэтому рекомендуется использовать стороннее программное обеспечение. Кажется, что когда сервис завершает работу изящно с кодом завершения 0 окон, не пытается его восстановить.
Я использую ServiceKeeper на моем сервере Windows 2008 на HostForLife.eu, и он работает очень хорошо. Ранее у меня был обзор ServiceHawk, но я предпочитаю использовать ServiceKeeper для более простого управления и интерфейса.
У меня было аналогичное требование, чтобы запустить службу, если она остановлена. Я подумал, что самое простое решение — выполнять указанную ниже команду в планировщике задач Windows каждые 5 минут:
net start MyServiceName
Эта команда в основном запускает службу (если она остановлена) и не имеет никакого эффекта, если служба уже запущена.
Недавно я реализовал опцию восстановления для запуска сценария powershell, который пытается перезапустить службу определенное количество раз и отправляет уведомление по электронной почте, а также.
После нескольких попыток (и несмотря на все другие вещи, которые я видел), конфигурация полей на вкладке восстановления в сервисах выглядит следующим образом:
Программа: Powershell.exe
** Не C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Powershell.exe
** $ args — это параметры, которые будут переданы в ваш скрипт. Это не обязательно.
Энциклопедия Windows
Все об использовании и настройке Windows
- Windata
- »
- Windows XP
- »
- FAQ [XP]
- » Настройка автоматического перезапуска службы
Настройка автоматического перезапуска службы
В Windows значительно усовершенствованы функции восстановления служб. Откройте оснастку Управление компьютером (Computer Management), выберите команду Службы и программы > Службы (Serices and Applications > Services) и перейдите на вкладке Восстановление (Recovery), где для каждой службы представлен набор соответствующих действий.
· Ничего не делать (Take no action);
· Перезапуск службы (Restart the service);
· Выполнение программы (Run a user-defined file);
· Перезагрузка компьютера (Reboot a machine).
Для решения этой задачи также можно создать собственный сценарий, выполняемый непрерывно, с помощью командного файла. Например, в следующем сценарии используются программы SC.EXE и SLEEP.EXE из пакета Resource Kit:
:start
sc query spooler > state.txt
find «STOPPED» state.txt
if %errorlevel% EQU 0 goto error
sleep 300
goto start
:error
sc start spooler
sleep 5
goto start
Существует возможность добавить имя сервера (например, \\server query и т.д.), если необходимо контролировать работу удаленного компьютера. Проверка выполняется каждые пять минут, однако, интервал можно изменить, равно как проверять сразу несколько служб.
Управляем службами Windows с помощью PowerShell. Часть 2
Продолжаем знакомиться с тем, как осуществлять управление службами Windows с использованием PowerShell. В предыдущем посте мы рассмотрели, как получить статус службы на локальном и удаленном компьютере, произвести фильтрацию служб (например, найти только остановленные службы) и определить зависимые службы. В этом посте будут рассмотрены такие достаточно тривиальные вещи, как:
- Остановка службы
- Запуск службы
- Перезапуск службы
- Приостановка и возобновление работы
- Управление удаленными службами
- Настраиваем автозагрузку службы
Мы уделим большее внимание разбору команд в PowerShell для осуществления выше перечисленного на локальном компьютере. В разделе “управление службами удаленных компьютерах” мы рассмотрим, ограничения работы в PowerShell v2 и v3. Подробности под катом.
Так как команда для получения статуса службы называется Get-Service, догадаться о том, как пишутся другие команды не составит труда. На худой конец мы можем спросить у PowerShell обо всех командах, так или иначе относящихся к работе со службами. Обратите внимание, что мы использовали параметр –noun для получения всех команд, связанных со службами.
Взглянем на эти команды внимательнее.
STOP-SERVICE
Чтобы остановить службу, мы должны уточнить ее имя.
Однако в конвейер ничего не будет передано. Некоторые командлеты, такие как Stop-Service, созданы таким образом, что по умолчанию они не записывают объект в конвейер. Мы же заставим это сделать, использовав параметр –Passthru.
Если служба не запущена, то командлет ничего не выведет, равно как и не выдаст никакой ошибки. Поэтому иногда лучше передать объект в Stop-Service (естественно использовав при этом параметр –whatif).
Параметр –WhatIf был добавлен для того, чтобы мы посмотрели, что будет, если командлет будет запущен. Когда я удостоверюсь, что это именно та служба, которая меня интересует, я просто удалю -Whatif и остановлю службу.
Как я уже упомянул выше, если служба уже остановлена, то командлет ничего не сделает. И использование Stop-Service в этом случае никому не навредит. Однако я все же предпочитают более цивилизованный подход, а именно:
Если служба запущена, то объект передается в конвейер и отправляется в Stop-Service. Ниже приведен вариант с остановкой нескольких служб.
Некоторые службы не захотят останавливаться – в силу наличия зависимых служб – что мы и видим на скриншоте ниже.
В таком случае используем параметр –Force. В большинстве случаев это работает, но без “защиты от дурака”. Помните, что команда также остановит зависимые службы.
START-SERVICE
Запуск службы осуществляется аналогичным образом. Он поддерживает параметр –Whatif, и вам придется использовать –Passthru, чтобы увидеть объекты.
И снова: если служба уже запущена, командлет ничего не сделает. Однако вы можете попытаться запустить службу и получите такую ошибку.
Причиной тому в большинстве случаев является выключенные службы. Как конфигурировать настройки службы, я расскажу в следующей статье.
Если вы хотите запустить службы и все службы, зависимые от нее, используйте следующее выражение:
Мы должны явно получить зависимые службы, потому что Start-Service не запустит автоматически их.
RESTART-SERVICE
Вы удивитесь, но перезапуск службы работает также как два предыдущих примера. Используйте –Passthru, если хотите убедиться, что служба запущена.
Так как мы осуществляем остановку службы, нам может понадобиться параметр –Force.
ПРИОСТАНОВКА И ВОЗОБНОВЛЕНИЕ РАБОТЫ
Работа некоторых служб может быть приостановлена на некоторое время, а затем возобновлена, и мы можем это сделать через PowerShell. Однако если служба не удовлетворяет требованиям, мы получим такие ошибки. (на примере показано, что мы пытались приостановить службу bits)
В чем же проблема? Смотрим на объект (используя Get-Service).
Если значение свойства CanPauseAndContinue равно True, значит мы можем приостанавливать и возобновлять работу службы. Найдем такие службы:
Как мы видим, не так много служб удовлетворяют этому требованию.
Готовы возобновить работу службы? Используйте следующее выражение:
Оба командлета также поддерживают –Whatif.
УДАЛЕННЫЕ СЛУЖБЫ
Как вы могли обратить внимание, все примере выше мы демонстрировали на локальном машине. И это неслучайно. К сожалению даже в PowerShell v3, ни у одного из этих командлетов нет параметра, который позволял бы управлять службой на удаленном компьютере. Get-Service, конечно, поддерживает параметр –Computername, но не более. Службу лицезреть вы сможете, а что-либо с ней сделать не получится. Нет, можно, конечно, если удаленный компьютер работает с PS v2 и включен PowerShell Remoting. Тогда мы можете использовать все выше приведенные команды, используя Invoke-Command для удаленного компьютера или PSSession. С другой стороны, проще управлять одной службой на нескольких серверах.
Управление службами на удаленных компьютерах не ограничивается вышеперечисленным, но это уже будет предмет рассмотрения последующих статей.
Все эти командлеты могут быть использованы в конвейерном выражении и зачастую это лучший вариант. Использование Get-Service для получения объектов и последующая передача их в подходящий командлет.
УСТАНАВЛИВАЕМ УДАЛЕННЫЙ СТАТУС
Итак, мы выяснили, что у командлета Stop-Service отсутствует такой полезный параметр как –Computername. Мы можете использовать эти команды в удаленной сессии, обратившись к командлету Invoke-Command, что уже само по себе продуктивно, если вы работаете со службой на нескольких компьютерах. Одно можно запускать, останавливать, перезапускать, ставить на паузу и запускать заново, используя Set-Service.
Эта команда поддерживает параметр –WhatIf. Вы также должны использовать –Passthru для передачи объектов в конвейер.
Валидными значениям для параметра –Status являются “запущена” (running), “остановлена” (stopped) и “на паузе” (paused). Помните, что у службы есть зависимые службы, мы не сможете изменять ее, что и продемонстрировано на скриншоте ниже.
К сожалению, у Set-Service отсутствует параметр –Force, поэтому придется вернуться к использованию PowerShell remoting и Invoke-Command. Если вы хотите перезапустить удаленную службу, используйте следующую команду:
Не забудьте использовать –Passthru, в противном случае вторая команда Set-Service ничего не осуществит.
Что по мне, так я предпочитаю работать сразу с несколькими службами, которые я не могу удаленно остановить, используя Set-Service, хотя их запуск проблем составляет. Я использую Invoke-Command. Но помните, что используя параметр –Computername PowerShell осуществляет подключение, используя RPC и DCOM, что может привести к проблемам с файрволом. Invoke-Command использует PowerShell remoting, который мы может быть еще не настроили или не включили.
УСТАНАВЛИВАЕМ ТИП АВТОЗАПУСКА СЛУЖБЫ
Set-Service полезнен, когда вы хотите включить или отключить службу, используя параметр –StartupType. Если Вы настроили службу, используя значения Automatic, Manual or Disabled. К сожалению, не существует варианта для Automatic (Delayed).
Однако, просто взглянув на объект, мы не сможем сказать, к какому типу автозагрузки он относится.
Как это сделать – одна из тем следующей статьи.
Помните, что изменение типа автозагрузки не повлияет на текущий статус службы.
Так что если вы хотите выключить и остановить (или включить и запустить) службу, передайте объект в подходящий командлет.
Технически, Set-Service позволяет вам изменить отображаемое имя службы и описание, но лично мне никогда не приходилось использовать в своей работе. Я использую Set-Service для включения и выключения служб. Если необходимо управлять службами удаленно, то я использую Invoke-Command.
Все, что я продемонстрировал в последних статьях, было связано с использованием специфических типов объектов службы, которые, как вы могли заметить, имеют некоторые ограничения. В следующей статье мы рассмотрим другие возможности по управлению службами, которые призваны обойти эти ограничения.