SC – управление службами и драйверами .

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)

:/>  Как открыть командную строку в windows 7, 8, 10

bufsize= – Размер (в байтах) буфера перечисления (по умолчанию = 4096)

ri= – Номер индекса возобновления для начала перечисления (по умолчанию = 0)

group= – Группа служб для перечисления (по умолчанию = все группы)

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

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

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


Имя_службы: 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_процесса
Флаги

Статья – создание службы в windows

Как запустить приложение в виде службы Windows

Можно ли запустить клиентское приложение в качестве службы? В одной из статей

я описывал

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

Non-Sucking Service Manager

.

NSSM представляет из себя свободное программное обеспечение с открытым кодом и поддерживает все операционные системы Microsoft, начиная с Windows 2000 и заканчивая Windows 8. NSSM не требует установки, достаточно его загрузить и распаковать. В дистрибутив входят версии для 32- и 64-разрядных ОС. Взять программу можно с сайта nssm.cc, на данный момент последняя стабильная версия 2.21.1, которую я и буду использовать.
Для демонстрации возможностей NSSM попробуем запустить Блокнот Windows в качестве службы на Windows 8.1.

Создание службы

Для создания службы с именем notepad запускаем командную консоль, переходим в папку с распакованным NSSM (для 64-разрядной Windows) и вводим команду

которая открывает окно графического инсталлятора NSSM. Чтобы создать службу, достаточно в поле Path указать путь к исполняемому файлу и нажать кнопку «Install service». Дополнительно в поле Options можно указать ключи, необходимые для запуска службы.

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

На вкладке «Shutdown» перечислены методы остановки и таймауты, используемые при штатном завершении работы или аварийной остановке приложения. Когда NSSM получает команду остановки (напр. при завершении работы приложения), то он пытается остановить контролируемое приложение штатным образом. Если же приложение не отвечает, то NSSM может принудительно завершить все процессы и подпроцессы этого приложения.

Всего есть четыре этапа завершения работы приложения, и по умолчанию они будет использоваться в таком порядке:

• На первом этапе NSSM пытается сгенерировать и отправить событие Ctrl C. Этот способ хорошо работает для консольных приложений или скриптов, но не применим для графических приложений;
• Затем NSSM определяет все окна, созданные приложением, и посылает им сообщение WM_CLOSE, инициирующее выход из приложения;
• Третьим этапом NSSM вычисляет все потоки, созданные приложением, и отправляет им сообщение WM_QUIT, которое будет получено если приложение имеет очередь сообщений потока;
• И в качестве последнего средства NSSM может вызвать метод TerminateProcess(), принудительно завершив работу приложения.

:/>  8 консольных команд для настройки сети в Windows - Лайфхакер

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

По умолчанию при падении службы NSSM пытается рестартовать ее. На вкладке «Exit actions» можно изменить автоматическое действие при нештатном завершении работы приложения, а также выставить задержку перед автоматическим перезапуском приложения.

На вкладке «Input/Output (I/O)» можно задать перенаправление вводавывода приложения в указанный файл.

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

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

Управление службой

После создания службы с помощью NSSM зайдем в оснастку Services и найдем службу notepad. Как видите, с виду она ничем не отличается от остальных служб, мы также можем ее запустить, остановить или изменить режим запуска. Однако обратите внимание, что в качестве исполняемого файла указан nssm.exe.

А если зайти в Task Manager, то мы увидим следующую картину: в качестве основного (родительского) процесса запущен NSSM, служба notepad запущена как его дочерний процесс, и уже в этом дочернем процессе запущено приложение Блокнот.

Удаление службы

Для удаления службы вводим команду nssm remove notepad и подтверждаем ее удаление. А введя команду

можно обойтись и без подтверждения.

§

Как запустить приложение в виде службы Windows

Можно ли запустить клиентское приложение в качестве службы? В одной из статей

я описывал

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

Non-Sucking Service Manager

.

NSSM представляет из себя свободное программное обеспечение с открытым кодом и поддерживает все операционные системы Microsoft, начиная с Windows 2000 и заканчивая Windows 8. NSSM не требует установки, достаточно его загрузить и распаковать. В дистрибутив входят версии для 32- и 64-разрядных ОС. Взять программу можно с сайта nssm.cc, на данный момент последняя стабильная версия 2.21.1, которую я и буду использовать.
Для демонстрации возможностей NSSM попробуем запустить Блокнот Windows в качестве службы на Windows 8.1.

Создание службы

Для создания службы с именем notepad запускаем командную консоль, переходим в папку с распакованным NSSM (для 64-разрядной Windows) и вводим команду

:/>  Windows не видит второй жесткий диск | remontka.pro

которая открывает окно графического инсталлятора NSSM. Чтобы создать службу, достаточно в поле Path указать путь к исполняемому файлу и нажать кнопку «Install service». Дополнительно в поле Options можно указать ключи, необходимые для запуска службы.

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

На вкладке «Shutdown» перечислены методы остановки и таймауты, используемые при штатном завершении работы или аварийной остановке приложения. Когда NSSM получает команду остановки (напр. при завершении работы приложения), то он пытается остановить контролируемое приложение штатным образом. Если же приложение не отвечает, то NSSM может принудительно завершить все процессы и подпроцессы этого приложения.

Всего есть четыре этапа завершения работы приложения, и по умолчанию они будет использоваться в таком порядке:

• На первом этапе NSSM пытается сгенерировать и отправить событие Ctrl C. Этот способ хорошо работает для консольных приложений или скриптов, но не применим для графических приложений;
• Затем NSSM определяет все окна, созданные приложением, и посылает им сообщение WM_CLOSE, инициирующее выход из приложения;
• Третьим этапом NSSM вычисляет все потоки, созданные приложением, и отправляет им сообщение WM_QUIT, которое будет получено если приложение имеет очередь сообщений потока;
• И в качестве последнего средства NSSM может вызвать метод TerminateProcess(), принудительно завершив работу приложения.

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

По умолчанию при падении службы NSSM пытается рестартовать ее. На вкладке «Exit actions» можно изменить автоматическое действие при нештатном завершении работы приложения, а также выставить задержку перед автоматическим перезапуском приложения.

На вкладке «Input/Output (I/O)» можно задать перенаправление вводавывода приложения в указанный файл.

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

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

Управление службой

После создания службы с помощью NSSM зайдем в оснастку Services и найдем службу notepad. Как видите, с виду она ничем не отличается от остальных служб, мы также можем ее запустить, остановить или изменить режим запуска. Однако обратите внимание, что в качестве исполняемого файла указан nssm.exe.

А если зайти в Task Manager, то мы увидим следующую картину: в качестве основного (родительского) процесса запущен NSSM, служба notepad запущена как его дочерний процесс, и уже в этом дочернем процессе запущено приложение Блокнот.

Удаление службы

Для удаления службы вводим команду nssm remove notepad и подтверждаем ее удаление. А введя команду

можно обойтись и без подтверждения.

Оставьте комментарий

Adblock
detector