Как запустить службу через командную строку
Перейти к содержимому

Как запустить службу через командную строку

  • автор:

Практическое руководство. Установка и удаление служб Windows

Эта документация не относится к последней версии службы Windows. Последние сведения об использовании BackgroundService служб Windows и шаблоне рабочей службы см. в следующих статье:

  • Службы рабочей роли в .NET
  • Создание службы Windows с использованием BackgroundService

Если вы разрабатываете службу Windows, используя .NET Framework, можно быстро установить приложение службы с помощью служебной программы командной строки InstallUtil.exe или PowerShell. Если вы являетесь разработчиком и хотите создать службу Windows, которую пользователи могут устанавливать и удалять, можно использовать бесплатный набор инструментов WiX Toolset или коммерческие средства, такие как Advanced Installer, InstallShield и другие. См. сведения о создании пакета установщика (классическое приложение Windows).

Если вы хотите удалить службу на своем компьютере, не выполняйте процедуру, описанную в этой статье. Вместо этого определите, какая программа (или программный пакет) установила эту службу, а затем выберите Приложения в параметрах, чтобы удалить эту программу. Многие службы являются составной частью ОС Windows. Если их удалить, это может привести к нестабильной работе системы.

Чтобы использовать процедуру, описанную в этой статье, сначала необходимо добавить установщик службы в свою службу Windows. Дополнительные сведения см. в пошаговом руководстве. Создание приложения службы Windows.

Проекты служб Windows нельзя запускать напрямую из среды разработки Visual Studio путем нажатия клавиши F5 . Перед запуском проекта необходимо установить службу в проекте.

Запустите обозреватель сервера и убедитесь, что служба установлена или удалена.

Установка с помощью программы InstallUtil.exe

  1. В меню Пуск выберите каталог Visual Studio версия>, а затем выберите Командная строка разработчика для VS версия>. Появится командная строка разработчика для Visual Studio.
  2. Откройте каталог, где находится скомпилированный исполняемый файл вашего проекта.
  3. Запустите InstallUtil.exe из командной строки, указав исполняемый файл проекта в качестве параметра:
installutil .exe 
  • Для 32-разрядной версии .NET Framework 4 или 4.5 и более поздних версий: если каталог установки Windows — C:\Windows, по умолчанию используется путь C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe.
  • Для 64-разрядной версии .NET Framework 4 или 4.5 и более поздних версий: по умолчанию используется путь C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe.

Удаление с помощью служебной программы InstallUtil.exe

  1. В меню Пуск выберите каталог Visual Studio версия>, а затем выберите Командная строка разработчика для VS версия>. Появится командная строка разработчика для Visual Studio.
  2. Запустите InstallUtil.exe из командной строки, указав выходные данные проекта в качестве параметра:
installutil /u .exe 

Установка с помощью PowerShell

  1. В меню Пуск выберите Каталог Windows PowerShell и Windows PowerShell.
  2. Откройте каталог, где находится скомпилированный исполняемый файл вашего проекта.
  3. Запустите командлет New-Service, используя имя службы и выходные данные проекта в качестве аргументов.
New-Service -Name "YourServiceName" -BinaryPathName .exe 

Удаление с помощью PowerShell

  1. В меню Пуск выберите Каталог Windows PowerShell и Windows PowerShell.
  2. Выполните командлет Remove-Service, указав в качестве аргумента имя службы.
Remove-Service -Name "YourServiceName" 

Примечание. Чтобы использовать этот командлет, требуется PowerShell 6 или более поздней версии. Дополнительные сведения см. в статье Установка PowerShell в Windows.

sc.exe delete "YourServiceName" 

См. также

  • Знакомство с приложениями служб Windows
  • Практическое руководство. Создание служб Windows
  • Практическое руководство. Добавление установщиков в приложение службы
  • Installutil.exe (установщик)

Совместная работа с нами на GitHub

Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.

Команда 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

Тип
Состояние &nbsp
Код_выхода_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


sc query wna3100m — отобразить информацию о драйвере NETGEAR WNA3100M N300 Wireless Mini USB Adapter.

sc query type= interact — отобразить информацию обо всех интерактивных службах.

sc query state= inactive — отобразить информацию обо всех остановленных службах

sc query state= inactive > C:\Stopedsvc.txt — записать информацию обо всех остановленных службах в текстовый файл C:\Stopedsvc.txt . Перенаправление вывода в текстовый файл удобно использовать для сохранения информации и ее последующего использования.

sc qc dnscache — отобразить данные конфигурации для службы DNS-клиент.

Пример выводимой информации:

[SC] QueryServiceConfig: успех

Тип
Тип_запуска
Управление_ошибками
Имя_двоичного_файла
Группа_запуска
Тег
Выводимое_имя
Зависимости
&bnsp
Начальное_имя_службы
: 20 WIN32_SHARE_PROCESS
: 2 AUTO_START
: 1 NORMAL
: C:\Windows\system32\svchost.exe -k NetworkService
: TDI
: 0
: DNS-клиент
: Tdx
: nsi
: NT AUTHORITY\NetworkService

sc showsid dnscache — отобразить уникальный идентификатор SID службы DNS-клиент

Для конфигурирования системных служб используется команда sc config … , выполняющая изменение записи службы в реестре и в базе данных служб.

sc сервер config [имя службы] параметр1 параметр2.

Параметры командной строки:

Имя параметра включает знак равенства (=). Между знаком равенства и значением параметра должен быть пробел.

type= own|share|interact|kernel|filesys|rec|adapt — тип службы
start= boot|system|auto|demand|disabled|delayed-auto — тип запуска службы
error= normal|severe|critical|ignore — режим обработки ошибок
binPath= путь_к_двоичному_файлу — путь и имя исполняемого файла
group= группа_запуска — группа, к которой относится драйвер.
tag= yes|no наличие признака для определения порядка запуска внутри группы
depend= зависимости (разделенные / (косой чертой)) — зависимости службы
obj= имя_учетной_записи|имя_объекта
DisplayName= выводимое имя
password= пароль

Информация о драйверах и системных службах (сервисах) находится в разделе
HKLM\SYSTEM\CurrentControlSet\Services
Каждому драйверу или сервису соответствует свой раздел. Например, «msahci» — для драйвера стандартного SATA контроллера жестких дисков, «DNScache» — для службы «DNS клиент».

Управление службами через 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

Запустив команду SC query, вы увидите, что ее вывод очень длинный, поэтому лучше использовать фильтры для получения только нужной информации. Например, если в выводе следу­ющей команды будут содержаться лишь самые важные поля: sc query type= service

Если вам известно имя нужной службы, вы можете полу­чить информацию о ее конфигурации командой SC qc. Ее син­таксис таков: sc qc ИмяСлужбы

где ИмяСлужбы — имя службы, информацию о которой вы хотите получить. Вывод для отдельной службы выглядит так:

Обратите внимание, что в выводе не сообщается о текущем состоянии службы. Но в нем показывается следующее.

  • Binary Path Name — путь и имя исполняемого файла службы.
  • Dependencies — службы, которые должны работать, чтобы работала и указанная вами служба.
  • Display Name — описательное имя службы.
  • Service Start Name — имя учетной записи пользователя, от имени которого служба регистрируется в системе.
  • Start Туре — стартовая конфигурация службы.

Если служба настроена на автоматический запуск, сообщается AUTO_START, а если она настроена на запуск вручную — DEMAND_START. Для отключенных служб указывается DISABLED. Туре — тип службы и является ли она общим процессом (shared process).

Запуск, останов и приостановка служб

Как администратору, вам придется часто запускать, останавли­вать или приостанавливать службы Windows. Вот соответству­ющие команды SC и их синтаксис.

  • Запуск службы: sc start ИмяСлужбы
  • Приостановка службы: sc pause ИмяСлужбы
  • Возобновление работы приостановленной службы: sc continue ИмяСлужбы
  • Останов службы: sc stop ИмяСлужбы

где ИмяСлужбы — сокращенное имя нужной вам службы.

Настройка запуска службы

Службы Windows можно настроить на автоматический запуск или запуск вручную. Кроме того, их можно вовсе выключить. Запуск служб настраивается командой:

где ИмяСлужбы — сокращенное имя нужной службы, а флаг. — используемый тип запуска. Для служб допустимыми зна­чениями флага являются:

  • Auto — запуск службы при старте системы;
  • Demand — позволяет запустить службу вручную;
  • Disabled — отключает службу.

Таким образом, настроить службу для автоматического за­пуска можно так:

Рекомендуем для просмотра:

  • Регистрация и отслеживание событий Windows — 09/11/2012 04:31
  • Управление перезагрузкой удаленных систем — 09/11/2012 04:28
  • Регистрация службы под системной записью — 08/11/2012 16:25

Похожие темы:

  • Системные службы операционной системы — 08/11/2012 06:49
  • Изучение системной информации Windows — 08/11/2012 06:44
  • Запрос сведений о заданиях Schtasks — 08/11/2012 06:30

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *