Управление службами windows cmd

Команда 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= — Группа служб для перечисления (по умолчанию = все группы)

Читайте также:  Почему windows не unix подобная система

Примеры использования SC.

sc query — Перечислить состояния активных служб и драйверов

sc query dnscache — Отобразить состояние службы DNS-клиент, имеющей короткое имя dnscache

Пример отображаемой информации:

Тип
Состояние

Код_выхода_Win32
Код_выхода_службы
Контрольная_точка
Ожидание

: 20 WIN32_SHARE_PROCESS
: 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
: 0 (0x0)
: 0 (0x0)
: 0x0
: 0x0

sc \\mycomp queryex dnscache — отображение расширенного состояния службы DNS-клиент на компьютере с именем mycomp

Пример отображаемой информации:

Имя_службы: dnscache
Тип
Состояние

Код_выхода_Win32
Код_выхода_службы
Контрольная_точка
Ожидание
ID_процесса
Флаги

: 20 WIN32_SHARE_PROCESS
: 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
: 0 (0x0)
: 0 (0x0)
: 0x0
: 0x0
: 1312
:

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

Тип
Состояние
&nbsp
Код_выхода_Win32
Код_выхода_службы
Контрольная_точка
Ожидание
: 1 KERNEL_DRIVER
: 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
: 0 (0x0)
: 0 (0x0)
: 0x0
: 0x0


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: успех

Имя_службы: dnscache

Тип
Тип_запуска
Управление_ошибками
Имя_двоичного_файла
Группа_запуска
Тег
Выводимое_имя
Зависимости
&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 клиент».

Как открыть службы Windows

Способ 1

Кликните правой кнопкой мыши по Пуск и выберите Выполнить:

В открывшемся окне введите команду services.msc и нажмите OK.

Откроется оснастка «Службы».

Способ 2

Откройте панель управления: в Windows 10 или 8 правой кнопкой мыши по ПускПанель управления. В Windows 7: левой кнопкой по ПускПанель управления.

В открывшемся окне в правой верхней части найдите строку поиска и введите Службы.

Среди результатов в разделе Администрирование кликните по Просмотр локальных служб.

Способ 3

Воспользуйтесь поиском Windows.

В 10-ке кликните по значку поиска на нижней панели и введите Службы.

Среди результатов в самом верху появится нужный пункт.

В Windows 7 процесс аналогичен, за исключением того, что строка поиска находится в нижней части меню Пуск.

Управление системными службами через командную строку

Службы обеспечивают ключевые функции рабочих станций и серверов. Для управления системными службами на локальных и удаленных системах используется команда контроллера служб (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-адрес удаленного компьютера.

Управление службами из командной строки и настройки при сбое

Операционная система, как и все то, что создано человеком, подвержено сбою и поломки. Тут я хочу затронуть утилиту sc failure, которая дает возможность управлять службами Windows из командной строки. Для простого пользователя операционная система показывает только вершину айсберга, только частицу своих возможностей, и это правильно, ведь простой обыватель, управляемый собственным любопытством может вмиг разрушить то, на что компания Microsoft тратит свои знания и время. Но, есть и другая сторона монеты – программисты.

Во времена, когда Windows и не пахло, а Билл Гейтс усердно программировал на assembler, было создано знаменитую MS-DOS. Но, интерес к системе будет только в том случае, если к ней прилагается достаточно программного обеспечения. Создавать программы под DOS просто, тут не нужны тома документации или толстые справочники, а вот с Windows все по-другому (хотя с Windows Script Host можно тоже многое создать). Простым примером может служить то, как одни игры прекрасно идут на 98, а уже на XP или Семерке постоянно хулиганят. И не надо тут говорить про правый клик/совместимость. Ошибки частенько возникают, если игра запущена под учетной записью, на которую наложены ряд ограничений (редактирование реестра или доступ к %SystemRoot% ). Однако, системные службы тоже не идеальны, и с ними происходят сбои.

Как правило, критически важные службы и их восстановление в случае сбоя настраивается автоматически. Так, IIS Admin настроена так, что в случае сбоя запускается программа lisreset.exe, которая и устраняет возникшие проблемы. Ну, создавать пока собственные службы рано, а вот управление имеющимися из командной строки произвести можно.

Войдем в Панель управления/Администрирование и откроем оснастку Cлужбы, двойной клик по сервису и переход на вкладку Восстановление:

Тут можно прописать действия компьютера при первом, втором или последующем сбое (например перегрузить систему или запустить программу для диагностики), а также ряд других параметров. Однако, управление службами из командной строки также возможно, для этого используется утилита sc и команда failure с рядом параметров:

Тут все довольно просто,

  • ИнтервалСбросаСчетчика – время стабильной работы (в секундах), спустя которое произойдет сброс счетчика неудач,
  • СообщениеПриСбое – широковещательное сообщения
  • ПутьКСценарию – путь к программе или сценарию, который будет запускаться при сбое

Take No Active – этот сбой будет проигнорирован системой, но она попробует восстановить службу при предыдущих или последующих сбоях

Restart The Service – в данном случае после короткой паузы произойдет перезапуск службы

Run A Program – нужно указать полный путь к программе, сценарию или командному файлу, который будет запущен после сбоя (сразу лезут подлые мыслишки про засевший в системе троян, который перейдет в атаку при аварии в системе).

Reboot The Computer – перезагрузка системы по прошествии указанного времени.

Стоит учитывать, что ИнтервалСбросаСчетчика, как правило, устанавливают на несколько часов или дней (тут время указывается в секундах). Указывать можно не одно действие, а несколько, при этом стоит также указать время, через которое это действие будет выполнено, (время указывают в миллисекундах), разделителем выступает косая черта (/);

в данном примере спустя 1 миллисекунда будет произведен перезапуск службы при первой и второй попытке, а уже на третей попытке будет произведен перезапуск системы спустя 30 секунд. Как видно, счетчик неудач будет сброшен спустя 24 часа без сбоев (86400 секунд). Для управления службами удаленных систем из командной строки, допустимо использование UNC – имени или IP-адреса:

Если надо при сбое запустить нужный сценарий или программу, то синтаксис может быть таким:

Прежде чем производить управление системными службами из оболочки командной строки, можно узнать уже имеющиеся настройки с помощью команды sc qfailure :

Например, для антивируса Avast заданы такие параметры:

В данном примере видно, что поле RESET_PERIOD ровно 3600 секунд (60 минут или час) – интервал сброса счетчика. Поле REBOOT_MESSAGE является пустым – сообщение при сбое, никакого сценария или программы при сбое также запускаться не будет, поскольку поле COMMAN_LINE пусто. FAILURE_ACTIONS – в первый и второй сбой произойдет перезапуск, с периодом в 5000 миллисекунд. Вообще-то, утилита sc содержит множество полезных функций, вплоть до прописки новой службы в системе.

Спасибо за внимание. Автор блога Владимир Баталий

Оцените статью