Skip to content

Latest commit

 

History

History
120 lines (107 loc) · 9.11 KB

Создать службу в Windows.md

File metadata and controls

120 lines (107 loc) · 9.11 KB

Создать службу в Windows

Команда sc

Описание

# sc
ОПИСАНИЕ:
        SC представляет собой программу командной строки, используемую
        для связи со службами и диспетчером управления службами.
ИСПОЛЬЗОВАНИЕ:
        sc <сервер> [команда] [имя_службы] <параметр1> <параметр2>...


        Параметр <сервер> задается в формате "\\имя_сервера".
        Для получения справки о командах введите "sc [команда]"
        Команды:
          query-----------Запрашивает состояние службы или перечисляет
                          состояния типов служб.
          queryex---------Запрашивает расширенное состояние службы или
                          перечисляет состояния типов служб.
          start-----------Запускает службу.
          pause-----------Отправляет службе управляющий запрос PAUSE.
          interrogate-----Отправляет службе управляющий запрос INTERROGATE.
          continue--------Отправляет службе управляющий запрос CONTINUE.
          stop------------Отправляет службе запрос STOP.
          config----------Изменяет конфигурацию службы (с сохранением).
          description-----Изменяет описание службы.
          failure---------Изменяет действие, выполняемое службой при сбое.
          failureflag-----Изменяет флаг действия, выполняемого службой при сбое.
          sidtype---------Изменяет тип SID службы.
          privs-----------Изменяет привилегии, требуемые для службы.
          managedaccount--Изменяет службу для пометки пароля учетной записи
                          службы как управляемого LSA.
          qc--------------Запрашивает данные конфигурации для службы.
          qdescription----Запрашивает описание службы.
          qfailure--------Запрашивает действия, выполняемые службой при сбое.
          qfailureflag----Запрашивает флаг действия, выполняемого службой при сбое.
          qsidtype--------Запрашивает тип SID службы.
          qprivs----------Запрашивает привилегии, требуемые для службы.
          qtriggerinfo----Запрашивает параметры триггеров службы.
          qpreferrednode--Запрашивает предпочтительный узел NUMA службы.
          qmanagedaccount-Запрашивает, использует ли служба учетную запись с
                          паролем, управляемым LSA.
          qprotection-----Запрашивает уровень защиты процессов службы.
          quserservice----Запрашивает локальный экземпляр шаблона службы пользователя.
          delete----------Удаляет службу (из реестра).
          create----------Создает службу (добавляет ее в реестр).
          control---------Отправляет службе управляющий сигнал.
          sdshow----------Отображает дескриптор безопасности службы.
          sdset-----------Устанавливает дескриптор безопасности службы.
          showsid---------Отображает строку SID службы, которая соответствует произвольному имени.
          triggerinfo-----Задает параметры триггеров службы.
          preferrednode---Задает предпочтительный узел NUMA службы.
          GetDisplayName--Получает параметр DisplayName для службы.
          GetKeyName------Получает имя раздела для службы (ServiceKeyName).
          EnumDepend------Перечисляет зависимости службы.

        Следующие команды не требуют имени службы:
        sc <сервер> <команда> <параметр>
          boot------------(ok | bad) Указывает, требуется ли сохранить
                          последнюю загрузку в качестве последней удачной конфигурации загрузки
          Lock------------Блокирует базу данных служб
          QueryLock-------Запрашивает состояние блокировки (LockStatus) базы данных диспетчера управления службами (SCManager)
ПРИМЕР:
        sc start MyService


Параметры QUERY и QUERYEX:
        Если после команды query указано имя службы, будет возвращено
        состояние этой службы.  В этом случае дополнительные параметры
        не используются.  Если после команды query указаны следующие
        параметры либо ничего не указано, выполняется перечисление служб.
    type=    Тип служб для перечисления (driver, service, userservice, all)
             (по умолчанию = service)
    state=   Состояние служб для перечисления (inactive, all)
             (по умолчанию = active)
    bufsize= Размер (в байтах) буфера перечисления
             (по умолчанию = 4096)
    ri=      Номер индекса возобновления для начала перечисления
             (по умолчанию = 0)
    group=   Группа служб для перечисления
             (по умолчанию = все группы)

Примеры использования:
sc query                - Перечисление состояний активных служб и драйверов
sc query eventlog       - Отображение состояния службы eventlog
sc queryex eventlog     - Отображение расширенного состояния службы eventlog
sc query type= driver   - Перечисление только активных драйверов
sc query type= service  - Перечисление только служб Win32
sc query state= all     - Перечисление всех служб и драйверов
sc query bufsize= 50    - Перечисление с буфером размером 50 байт
sc query ri= 14         - Перечисление с индексом возобновления = 14
sc queryex group= ""    - Перечисление активных служб, не входящих в группу
sc query type= interact - Перечисление всех интерактивных служб
sc query type= driver group= NDIS     - Перечисление всех драйверов NDIS

Примечание

Кавычки внутри параметров нужно экранировать \

Примеры

Пример (с экранированием кавычек и тп):

sc create "1С:Предприятие 8.3 Server Agent BitFinans test" binPath= "\"C:\Program Files\1cv8\8.3.7.1860\bin\ragent.exe\" -srvc -agent -regport 4541 -port 4540 -range 4560:4591 -d \"C:\Program Files (x86)\1cv8\srvinfobittest"" start= auto displayname= "1С:Предприятие 8.3 Server Agent BitFinans test" obj= ".\Администратор" password= "passwd"
sc description "1С:Предприятие 8.3 Server AgentBitFinans test" "Тестовый кластер 1С BitFinans"
sc start "1С:Предприятие 8.3 Server Agent BitFinans test"

Пример покороче

sc create "FakeSMTP" binPath= "D:\Soft\Fakesmtp\npm\fake-smtp-server.cmd" start= auto displayname= "FakeSMTP" obj= "LocalSystem"

Утилита NSSM

https://nssm.cc/

Позволяет создать сервис из того, что и не думало быть сервисом. В том числе переправить stdin/out/err в файлы логов.

Команда установки nssm install, в ней гуй для настроек. В принципе можно забить все в командную строку, тогда гуя не будет и можно использовать в скриптах