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

как остановить, запустить и удалить службу Windows в cmd со ссылкой на имя службы

как остановить / запустить службу Windows в cmd с помощью только фрагмента имени службы. Пример:

NET STOP *part_of_name_of_service*
NET START *part_of_name_of_service*

Например. mysql имеет множество версий «имени службы».

MySQL57
wampmysqld
etc, etc, etc

Идея состоит в том, чтобы остановить / запустить любую службу, содержащую слово «mysql». Что-то такое:

net start *MySQL*

Но, к сожалению, моя попытка выдает ошибку: «Имя службы недействительно».

Попытки:

1. Выгрузите имена сервисов в файл с помощью следующей команды:

REG QUERY "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services" > services.txt
findstr /i /r "mysql" services.txt
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MySQL
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\wampmysqld64

но я не смог завершить цикл

2. С помощью taskkill

call :winservices "*mysql*"

:: funcion winservices
@echo off
  goto:eof
  :winservices
  set winservices=%1
   taskkill /f /im "%winservices%" /t
  goto:eof

Но "*mysql*" не работает (только "mysql*" работает)

То же самое происходит при попытке удалить сервис:

sc delete *MySQL*

как я это делаю?

С PowerShell очень просто:

Stop-Service *mysql*

Start-Service и Remove-Service работают так же, последний доступен только начиная с PowerShell 6.