Запуск службы из командной строки
Для запуска службы из командной строки служит программа net. Кроме множества прочих возможностей она имеет функционал для управления службами Windows. Чтобы запустить службу из командной строки нужно написать:
net start имя_службы
Для остановки службы нужно воспользоваться командой:
net stop имя_службы
Например, для запуска службы Аудио (служба звука) нужно ввести команду:
net start AudioSrv
Эта команда аналогична запуску службы Windows Audio из консоли управления службами.
А вот для остановки службы cyberghost (VPN-сервер) нужно ввести команду:
net stop cyberghost
Для перезапуска службы через командную строку нет специальной команды. Для того чтобы перезапустить службу нужно сначала остановить ее, а потом снова запустить.
Если вы работаете не под администратором, то для запуска программы net нужно воспользоваться командой runas.
Если выполнить команду net start без имени службы, то она выведет на экран список запущенных служб.
При запуске служб из командной строки также запускаются зависимые службы.
В случае ошибки программа скажет, что не удалось запустить службу. Если системе не удалось запустить дочернюю службу, то программа net уточнит это.
Это простой вариант взаимодействия со службами. На самом деле в операционной системе Windows есть более умная утилита для общения со службами. Называется она Sc.
Команда SC
Вот список возможных параметров данной команды:
Запрос состояния службы |
|
query | Запрос состояния службы или перечисление состояний типов служб. Пример вывода:
Имя_службы: W32Time Тип : 20 WIN32_SHARE_PROCESS Состояние : 4 RUNNING (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN) Код_выхода_Win32 : 0 (0x0) Код_выхода_службы : 0 (0x0) Контрольная_точка : 0x0 Ожидание : 0x0 |
queryex | Запрос расширенного состояния службы или перечисление состояний типов служб. Пример вывода:
Имя_службы: W32Time Тип : 20 WIN32_SHARE_PROCESS Состояние : 4 RUNNING (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN) Код_выхода_Win32 : 0 (0x0) Код_выхода_службы : 0 (0x0) Контрольная_точка : 0x0 Ожидание : 0x0 ID_процесса : 1144 Флаги : |
Управление службой |
|
start | Запуск службы. |
pause | Отправка службе управляющего запроса PAUSE. |
interrogate | Отправка службе управляющего запроса INTERROGATE. |
continue | Отправка службе управляющего запроса CONTINUE. |
stop | Отправка службе запроса STOP. |
control | Отправка службе управляющего сигнала. |
Изменение конфигурации службы |
|
config | Изменение конфигурации службы (постоянное). |
description | Изменение описания службы. |
failure | Изменение действия, выполняемого службой при сбое. |
failureflag | Изменение флага действия, выполняемого службой при сбое. |
sidtype | Изменение типа SID службы. |
privs | Изменение привилегий, требуемых для службы. |
delete | Удаление службы (из реестра). |
create | Создание службы (добавление ее в реестр). |
sdset | Установка дескриптора безопасности службы. |
triggerinfo | Настройка параметров триггеров службы. |
preferrednode | Задание предпочтительного узла NUMA службы. |
Запрос данных о конфигурации службы |
|
qc | Запрос данных конфигурации для службы. |
qdescription | Запрос описания службы. |
qfailure | Запрос действия, выполняемого службой при сбое. |
qfailureflag | Запрос флага действия, выполняемого службой при сбое. |
qsidtype | Запрос типа SID службы. |
qprivs | Запрос привилегий, требуемых для службы. |
qtriggerinfo | Запрос параметров службы. |
qpreferrednode | Запрос предпочтительного узла NUMA службы. |
sdshow | Отображение дескриптора безопасности службы. |
showsid | Отображение строки SID службы, соответствующей произвольному имени. |
GetDisplayName | Получение параметра DisplayName для службы. |
GetKeyName | Получение имени раздела для службы (ServiceKeyName). |
EnumDepend | Перечисление зависимостей службы. |