Управление системными службами через командную строку
Службы обеспечивают ключевые функции рабочих станций и серверов. Для управления системными службами на локальных и удаленных системах используется команда контроллера служб (service controller command) SC, имеющая набор подкоманд, здесь описывается лишь их некоторая часть.
Для удобства пользования в командной строке используются сокращенные названия служб Windows (например, Spooler — диспетчер очереди печати, Dhcp — DHCP-клиент, W32Time — Служба времени Windows и т.п., см таблицу по ссылке).
Команды SC — настройка, запуск и останов системный служб Windows
- SC config — настройка учетных записей регистрации и запуска служб;
- SC query — вывод списка всех служб, настроенных на компьютере;
- SC qc отображение конфигурации определенной службы;
- SC start — запуск служб;
- SC stop — останов служб;
- SC pause — приостановка работы служб;
- SC continue — возобновление работы служб;
- SC failure — задание действий, выполняемых при сбое службы;
- SC qfailure — просмотр действий, выполняемых при сбое службы.
Примеры работы с командами SC
Во всех командах можно указывать имя удаленного компьютера, со службами которого вы хотите работать. Для этого вставьте UNC-имя (например, \\Roza) или IP-адрес (например, 192.168.1.1) компьютера перед используемой подкомандой. Вот синтаксис: sc ИмяСервера Подкоманда.
Пример команды sc на компьютере с Windows 10:
- sc \\Roza query SpoolerЧтобы получить список всех служб, настроенных в системе, введите в командной строке команду: sc query type=service state=all или sc ИмяСервера query type=service state=all где ИмяСервера — UNC-имя или IP-адрес удаленного компьютера.
Рекомендуем для просмотра:
- Запуск 1С7.7 из командной строки — 18/05/2011 08:43
- Регистрация и отслеживание событий в Windows — 18/05/2011 04:05
- SHUTDOWN — перезагрузка и выключение систем из командной строки — 17/05/2011 04:36
Похожие темы:
- Управление реестром из командной строки — 16/05/2011 10:24
- Изучение системной информации через cmd — 16/05/2011 06:52
- Управление заданиями из командной строки — 06/05/2011 05:00
Управление службами через CMD
Службы обеспечивают ключевые функции рабочих станций и серверов. Для управления системными службами на локальных и удаленных системах используется команда контроллера служб (service controller command) SC, имеющая набор подкоманд, здесь описывается лишь их некоторая часть.
Для удобства пользования в командной строке используются сокращенные названия служб Windows (например, Spooler – диспетчер очереди печати, Dhcp – DHCP-клиент, W32Time – Служба времени Windows и т.п., см таблицу по ссылке).
Команды SC – настройка, запуск и останов системный служб Windows
SC config — настройка учетных записей регистрации и запуска служб;
SC query — вывод списка всех служб, настроенных на компьютере;
SC qc отображение конфигурации определенной службы;
SC start — запуск служб;
SC stop — останов служб;
SC pause — приостановка работы служб;
SC continue — возобновление работы служб;
SC failure — задание действий, выполняемых при сбое службы;
SC qfailure — просмотр действий, выполняемых при сбое службы.
sc delete “имя службы”
Чтобы получить список всех служб, настроенных в системе, введите в командной строке команду: sc query type=service state=all или sc ИмяСервера query type=service state=all где ИмяСервера – UNC-имя или IP-адрес удаленного компьютера.
Как создать свою службу в Windows 11 и Windows 10

Службы в Windows — особые процессы, выполняемые в фоновом режиме, в том числе от учетной записи «СИСТЕМА», которые могут быть запущены в том числе до входа в систему. При желании вы можете создать свою собственную службу, которая будет работать таким же образом.
В этой инструкции подробно о том, как создать службу в Windows 11 или Windows 10 средствами системы, ограничениях методов и одном дополнительном способе заставить работать ваш процесс в качестве службы.
Создание службы в командной строке
Первый способ — использование команды командной строки для создания своей службы, шаги будут следующими:
sc create Имя_службы binPath="C:\service-file.exe" DisplayName= "Описание_службы" type=own start=auto

В указанной команде используются следующие параметры:
- binPath — путь к исполняемому файлу службы.
- DisplayName — отображаемое в списке служб имя службы.
- start — тип запуска, возможные значения: boot, auto, demand (значение по умолчанию), disabled, delayed-auto
- type — тип службы, по умолчанию own, возможны другие значения: share (делит исполняемый файл с другими службами), kernel (драйвер), filesys (драйвер файловой системы), interact (интерактивная служба с возможность взаимодействия с пользователем, поддержка этого типа служб прекращается).
После создания службы вы сможете увидеть её в списке служб (Win+R — services.msc), а автоматический запуск произойдет при следующей перезагрузке системы.

Создание службы в Windows PowerShell
Создать службу можно и в PowerShell, запущенном от имени администратора (или в Терминале Windows). Базовый вариант команды с параметрами по умолчанию:
New-Service -Name "Имя_Службы" -BinaryPathName '"C:\путь_к_файлу параметры_запуска"'
Расширенный вариант с указанием описания и типа запуска:
New-Service -Name MyService -BinaryPathName '"C:\путь_к_файлу параметры_запуска"' -DisplayName "Имя_службы" -Description "Описание службы" -StartupType "Automatic"

В случае, если выполняется запуск исполняемого файла без параметров, а путь не содержит пробелов, использование кавычек не обязательно, например:
-BinaryPathName C:\remontka.exe
Удаление созданной службы
Удалить созданную службы вы можете также в командной строке, запущенной от имени Администратора с помощью команды:
sc delete Имя_службы

Или в Windows PowerShell:
Remove-Service -Name MyService
После выполнения указанных команд созданная вами служба будет удалена из Windows.
Созданная служба не работает, варианты решения
Причина в том, что исполняемые файлы служб — не совсем обычные программы, они, помимо прочего, обмениваются данными с системой. Если ваш EXE не отвечает на соответствующие запросы системы, Windows «делает вывод» о том, что со службой что-то не так.
Как быть, если вы всё-таки настойчиво хотите использовать свой прикладной исполняемый файл в качестве службы?

- Использовать планировщик заданий и запуск от соответствующего пользователя — это не будет в полной мере службой, но почти то, что нужно.
- Ранее существовала программа RunAsSvc, позволяющая запускать любые процессы в качестве службы, но для современных ОC он не применима, а разработка была прекращена.
- Использовать инструменты INSTSRV.EXE и SRVANY.EXE из Windows Server 2003 Resource Kit Tools при создании службы Windows.
Создание пользовательской службы с помощью INSTSRV.EXE и SRVANY.EXE
Последний вариант из приведённого выше списка рассмотрим подробнее. Шаги будут следующими:
- Загрузите (вероятнее всего, придется найти в Интернете на сторонних сайтах) Windows Server 2003 Resource Kit полностью или только файлы INSTSRV.EXE и SRVANY.EXE, располагаем их у себя на диске, в моем примере путь — C:\Windows
- В командной строке от имени администратора используйте команду (пути меняем на свои):
C:\Windows\instsrv.exe Имя_службы C:\Windows\srvany.exe

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\

и найдите раздел с вашим именем службы. Нажимаем по нему правой кнопкой мыши и выбираем пункт «Создать» — «Раздел», задаем имя «Parameters» для раздела.
Закройте редактор реестра — служба создана, её можно запустить из services.msc или она будет автоматически запущена после перезагрузки компьютера.
Учитывайте, что во всех приведенных примерах служба по умолчанию запускается с учетной записью «СИСТЕМА». В некоторых случаях это может приводить к неправильной работе. В этом случае может иметь смысл зайти в свойства службы в services.msc и изменить параметры на вкладке «Вход в систему».
А вдруг и это будет интересно:
- Лучшие бесплатные программы для Windows
- В манифесте указана неизвестная структура в Microsoft Store — варианты решения
- Как добавить комментарии, теги и рейтинги к папке Windows
- Не удается войти в учетную запись Windows — как исправить?
- Некоторые параметры задает системный администратор в параметрах электропитания — как исправить?
- Как удалить Галерею в Windows 11
- Windows 11
- Windows 10
- Android
- Загрузочная флешка
- Лечение вирусов
- Восстановление данных
- Установка с флешки
- Настройка роутера
- Всё про Windows
- В контакте
- Одноклассники
-
Юрий 06.02.2023 в 23:10
Команда SC – управление службами.
Команда SC используется для конфигурирования, опроса состояния, остановки, запуска, удаления и добавления системных служб в командной строке Windows. Большая часть подкоманд команды SC применима так же по отношению к драйверам. При наличии соответствующих прав, команда SC может применяться для управления службами как на локальной, так и на удаленной системе.
Формат командной строки:
sc сервер [команда] [имя службы] параметр1 параметр2 .
При запуске SC.EXE без параметров, отображается подсказка по использованию команды.
сервер — имя или IP-адрес удаленной системы в формате «\\cервер».
query -Запрос состояния службы или перечисление состояний типов служб.
queryex — Запрос расширенного состояния службы или перечисление состояний типов служб.
start — Запуск службы.
pause — Отправка службе управляющего запроса PAUSE для приостановки ее работы.
interrogate — Отправка службе управляющего запроса INTERROGATE.
continue — Отправка службе управляющего запроса CONTINUE для возобновления ее работы.
stop — Отправка службе запроса STOP.
config — Изменение конфигурации службы (постоянное).
description — Изменение описания службы.
failure — Изменение действия, выполняемого службой при сбое.
failureflag — Изменение флага действия, выполняемого службой при сбое.
sidtype — Изменение типа SID службы.
privs — Изменение привилегий, требуемых для службы.
qc — Запрос данных конфигурации для службы.
qdescription — Запрос описания службы.
qfailure — Запрос действия, выполняемого службой при сбое.
qfailureflag — Запрос флага действия, выполняемого службой при сбое.
qsidtype — Запрос типа SID службы.
qprivs — Запрос привилегий, требуемых для службы.
qtriggerinfo — Запрос параметров службы.
qpreferrednode — Запрос предпочтительного узла NUMA службы.
delete — Удаление службы (из реестра).
create — Создание службы (добавление ее в реестр).
control — Отправка службе управляющего сигнала.
sdshow — Отображение дескриптора безопасности службы.
sdset — Установка дескриптора безопасности службы.
showsid — Отображение строки SID службы, соответствующей произвольному имени.
triggerinfo — Настройка параметров триггеров службы.
preferrednode — Задание предпочтительного узла NUMA службы.
GetDisplayName — Получение параметра DisplayName для службы.
GetKeyName — Получение имени раздела для службы (ServiceKeyName).
EnumDepend — Перечисление зависимостей службы.
Следующие команды не требуют имени службы:
sc сервер команда параметры boot -(ok | bad) Показывает, требуется ли сохранить последнюю загрузку в качестве последней удачной конфигурации загрузки
Lock -Блокировка базы данных служб
QueryLock -Запрос состояния блокировки (LockStatus) базы данных диспетчера управления службами (SCManager)
Справка для команд QUERY и QUERYEX:
Параметры QUERY и QUERYEX:
Если после команды query указано имя службы, будет возвращено cостояние этой службы. В этом случае дополнительные параметры не используются. Если после команды запроса указаны следующие параметры либо ничего не указано, выполняется перечисление служб.
type= — Тип служб для перечисления (driver, service, all) (по умолчанию = service)
state= — Состояние служб для перечисления (inactive, all) (по умолчанию = active)
bufsize= — Размер (в байтах) буфера перечисления (по умолчанию = 4096)
ri= — Номер индекса возобновления для начала перечисления (по умолчанию = 0)
group= — Группа служб для перечисления (по умолчанию = все группы)
Примеры использования SC.
sc query — Перечислить состояния активных служб и драйверов
sc query dnscache — Отобразить состояние службы DNS-клиент, имеющей короткое имя dnscache
Пример отображаемой информации:
sc \\mycomp queryex dnscache — отображение расширенного состояния службы DNS-клиент на компьютере с именем mycomp
Пример отображаемой информации:
sc stop dnscache — остановить службу DNS-клиент на локальном компьютере
sc start dnscache — запустить службу DNS-клиент на локальном компьютере
sc query type= driver — отобразить информацию всех активных драйверов
sc query type= service — отобразить информацию всех активных служб Windows
sc query state= all — отобразить информацию всех активных драйверов и служб Windows
Обратите внимание на наличие пробела после знака равенства (state= all …) в параметрах перечисленных команд.
sc query type= driver group= NDIS — отобразить информацию обо всех драйверах группы NDIS ( сетевых драйверах )
Пример отображаемой информации:
Имя_службы: BfLwf
Выводимое_имя: Qualcomm Atheros Bandwidth Control
| Тип Состояние   Код_выхода_Win32 Код_выхода_службы Контрольная_точка Ожидание |
: 1 KERNEL_DRIVER : 4 RUNNING (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) : 0 (0x0) : 0 (0x0) : 0x0 : 0x0 |
.
.
.
Имя_службы: wna3100m
Выводимое_имя: NETGEAR WNA3100M N300 Wireless Mini USB Adapter
