Как создать ярлык для запуска задачи для локальных служб в Windows 10?

У меня есть наушники Bluetooth, иногда Windows 10 не может подключиться к устройству Bluetooth, поэтому мне нужно перейти в диспетчер задач -> Службы - Открыть службы -> Найти службу поддержки Bluetooth и перезапустить ее.

Мне было любопытно, могу ли я сделать какую-либо операцию с ярлыком или пакетным файлом или сценарий, и я могу просто щелкнуть по нему, и он перезапустит службу поддержки Bluetooth.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
48
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сначала найдите имя службы, введя следующую команду:

powershell -Command "sc.exe query | Select-String -Pattern Bluetooth -Context 1,0"

Вы найдете название своего сервиса со строкой SERVICE_NAME чуть выше DISPLAY_NAME, которую вы искали. Это может быть что-то вроде UmRdpService или RasMan, что угодно.

Затем в командной строке ПОВЫШЕННЫЙ введите следующие две команды:

sc stop YourServiceNameFoundAbove
sc start YourServiceNameFoundAbove

Теперь ваша служба перезапущена.

Вы можете использовать следующий пакет, он автоматически запросит повышение, если это необходимо. Просто измените строку set SRV=... и сохраните ее там, где вам удобно, тогда вам просто нужно создать ярлык вручную (сделано только один раз) на рабочем столе.

@echo off
setlocal EnableExtensions EnableDelayedExpansion

set SRV=YourServiceNameFoundPreviously

REM Check admin mode, auto-elevate if required.
openfiles > NUL 2>&1 || (
    REM Not elevated. Do it.
    echo createObject^("Shell.Application"^).shellExecute "%~dpnx0", "%*", "", "runas">"%TEMP%\%~n0.vbs"
    cscript /nologo "%TEMP%\%~n0.vbs"
    goto :eof
)
del /s /q "%TEMP%\%~n0.vbs" > NUL 2>&1

sc stop !SRV! || (
    echo ERROR: Couldn't stop service !SRV!.
    pause
    goto :eof
)
sc start !SRV! || (
    echo ERROR: Couldn't start service !SRV!.
    pause
    goto :eof
)
goto :eof

Это дает ошибку «[SC] ControlService FAILED 1051: элемент управления остановкой был отправлен службе, от которой зависят другие запущенные службы». имя службы для службы поддержки Bluetooth — bthserv. Я обнаружил, что «Служба громкой связи Bluetooth» (название службы: BthHFSrv) зависит от этой службы.

Nitin Mane 23.03.2022 07:13

Это означает, что некоторые другие службы требуют этого, поэтому вы не можете остановить его «как есть». Введите net stop bthserv, это даст вам отображаемые имена зависимых служб. Сначала остановите их, затем остановите bthserv, затем перезапустите bthserv, затем эти сервисы.

Wisblade 23.03.2022 07:17

Я создал пакетный файл, как вы сказали, немного изменил «echo y | net stop !SRV! || ...", и это решило проблему зависимости с auto Y. Спасибо и ура!

Nitin Mane 23.03.2022 07:35

Пожалуйста. Да, для остановки службы, но это не будет работать со всеми языками (для французской Windows, как у меня, вам нужно будет ввести O для «Oui»). Кроме того, вероятно, НЕТ перезапустит зависимые службы: это основная проблема, и поэтому я дал вам совет сделать это вручную с помощью sc. Действительно, лучше и безопаснее один раз сделать маленькую работу, а потом молчать вечно.

Wisblade 23.03.2022 08:28

Другие вопросы по теме