Подойдёт службам, которые запускаются отдельным исполняемым файлом.
Запускаем services.msc и смотрим свойства интересующей службы. На вкладке «Общие» запоминаем команду запуска и имя исполняемого файла.
taskkill /f /im имя_исполняемого_файла команда_запуска
Имейте в виду, что в этом случае служба запустится от имени текущего пользователя.
Как вариант, можно указать автоматический перезапуск службы в случае любых сбоев — в том же окне свойств, на вкладке «Восстановление». При этом явный запуск службы не потребуется и будет произведён сразу после её остановки. С записью об ошибке в журнал.
Способ 2
net stop имя_службы net start имя_службы
Здесь имя_службы — это выводимое имя, то есть ровно то, что отображается в списке служб. Если имя на русском, например «Автоматическое обновление», то в команду тоже надо писать на русском. Имена с пробелами ограничиваются кавычками:
net stop «Автоматическое обновление» net start «Автоматическое обновление»
И будьте внимательны при написании скриптов: русскоязычные имена служб надо вводить в DOS-кодировке!
З.Ы. При чём тут «net» — непонятно, но это способ перезапуска от производителя.
Как перезапустить УТМ?
Службу можно отключить и вручную, для этого необходимо открыть «Пуск» → «Панель управления» → «Администрирование» → «Службы». В открывшемся окне найдите службу «Transport», «Transport-Monitoring», «Transport-Updater». Отключать службы необходимо в следующем порядке:
- Transport-Updater
- Transport
- Transport-Monitoring
Для остановки службы нажмите на строку службы правой кнопки мыши и выберите пункт «Остановить».
После остановки всех служб запустите их заново.
Автоматический перезапуск службы Windows
Службами в Windows называют программы, которые работают в фоновом режиме, и обычно не требуют никакого взаимодействия с пользователем. Чаще всего, в роли служб выступают какие-то важные программы, которым необходимо быть постоянно запущенными. Однако, поскольку никто не застрахован от каких-либо ошибок в работе аппаратных или программных средств компьютера, такая программа может завершить свою работу в самый неподходящий момент. Чтобы избежать столь неприятного поворота событий, в настройках служб Windows предусмотрена возможность настройки перезапуска служб, в случае её непредвиденного завершения работы.
Настройка перезапуска службы Windows
- Открываем консоль управления службами, и находим нужную службу.
- Открываем свойства нужной службы, и переходим на вкладку «Восстановление».
- На данной вкладке можно настроить поведение службы при её непредвиденном завершении. При этом, есть возможность настроить различные действия для первого, второго и последующего завершения работы.
Для выбора доступны следующие действия:- Не выполнять никаких действий — в таком случае, ничего не будет делаться.
- Перезапуск службы — служба будет повторно запущена.
- Запуск программы — можно запустить программу или скрипт, например скрипт для отправки оповещения по электронной почте.
- Перезагрузка компьютера — как должно быть понятно из названия данного пункта, компьютер будет перезагружен.
Таким образом, для перезапуска службы в случае её завершения, достаточно выставить значение «Перезапуск службы» во всех трех пунктах.
Использование утилиты sc
Так же, подобную настройку можно выполнить при помощи утилиты SC. Узнать текущие настройки можно использовав параметр qfailure :
sc qfailure [ИМЯ СЛУЖБЫ]
Для настройки действий при завершении службы, следует использовать параметр failure:
sc failure [ИМЯ СЛУЖБЫ] [ПАРАМЕТРЫ]
Список параметров следующий:
- reset — значение в миллисекундах, по достижению которого счетчик сбоев будет сброшен. Используется совместно с параметром actions.
- reboot — сообщение, которое будет выведено при перезагрузке компьютера в том случае, если её выполнение указано в настройках восстановления службы.
- command команда, которую следует выполнить при сбое.
- actions — действия, выполняемые при сбое. Всего их три: run , restart , reboot .
Данный параметр требует так же указание параметра reset.
Примеры
Для того, чтобы не выполнять никаких действий:
sc failure [ИМЯ СЛУЖБЫ] reset= 86400 actions= //
Для бесконечного перезапуска службы через 1 минуту:
sc failure [ИМЯ СЛУЖБЫ] reset= 86400 actions= restart/60000
Restart-Service
Командлет Restart-Service отправляет сообщение остановки, а затем начальное сообщение контроллеру службы Windows для указанной службы. Если служба уже остановлена, она запускается без уведомления об ошибке. Службы можно указать по их именам служб или отображаемым именам, а также можно использовать параметр InputObject для передачи объекта, представляющего каждую службу, которую требуется перезапустить.
Примеры
Пример 1. Перезапуск службы на локальном компьютере
PS C:\> Restart-Service -Name winmgmt
Эта команда перезапускает службу инструментария управления Windows (WinMgmt) на локальном компьютере.
Пример 2. Исключение службы
PS C:\> Restart-Service -DisplayName "net*" -Exclude "net logon"
Эта команда перезапускает службы с отображаемым именем, которое начинается с Net, за исключением службы Net Logon.
Пример 3. Запуск всех остановленных сетевых служб
PS C:\> Get-Service -Name "net*" | Where-Object | Restart-Service
Эта команда запускает все остановленные сетевые службы на компьютере.
Эта команда использует Get-Service командлет для получения объектов, представляющих службы, имя службы которых начинается с net. Оператор конвейера ( | ) отправляет объект Where-Object служб командлету, который выбирает только службы, имеющие состояние остановленного. Другой оператор конвейера отправляет выбранные службы Restart-Service в .
На практике можно использовать параметр WhatIf для определения эффекта от команды, перед тем как выполнять ее.
Параметры
-Confirm
Запрос подтверждения перед выполнением командлета.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DisplayName
Указывает отображаемые имена перезапускаемых служб. Можно использовать подстановочные знаки.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Exclude
Указывает службы, которые пропускает этот командлет. Значение этого параметра определяет значение параметра Name. Введите часть имени или шаблон, например «s*». Можно использовать подстановочные знаки.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Force
Принудительное выполнение команды без запроса на подтверждение пользователем.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Include
Указывает службы, которые этот командлет перезапускает. Значение этого параметра определяет значение параметра Name. Введите часть имени или шаблон, например «s*». Можно использовать подстановочные знаки.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-InputObject
Указывает объекты ServiceController, представляющие службы для перезапуска. Введите переменную, которая содержит объекты, или команду или выражение, которое возвращает объекты.
Type: | ServiceController [ ] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Указывает имена перезапускаемых служб.
Type: | String [ ] |
Aliases: | ServiceName |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-PassThru
Возвращает объект, представляющий службу. По умолчанию этот командлет не создает выходные данные.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
Объект службы можно передать в этот командлет.
Можно передать строку, содержащую имя службы в этот командлет.
Выходные данные
None
По умолчанию этот командлет не возвращает выходные данные.
При использовании параметра PassThru этот командлет возвращает объект ServiceController , представляющий перезапущенную службу.
Примечания
Этот командлет доступен только на платформах Windows.
- Restart-Service может управлять службами только в том случае, если у текущего пользователя есть разрешение на это. Если команда работает неправильно, возможно, у вас нет необходимых разрешений.
- Чтобы найти имена служб и отображаемые имена служб в системе, введите Get-Service «. Имена служб отображаются в столбце Name, а отображаемые имена — в столбце DisplayName.
Связанные ссылки
- Get-Service
- New-Service
- Resume-Service
- Set-Service
- Start-Service
- Stop-Service
- Suspend-Service
- Remove-Service
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
PowerShell is an open source project. Select a link to provide feedback:
Обратная связь
Отправить и просмотреть отзыв по