Створення служби Windows за допомогою програми Sc.exe

Переклади статей Переклади статей
Номер статті: 251192 - Показ продуктів, яких стосується ця стаття.
Розгорнути все | Згорнути все

На цій сторінці

ПІДСУМКИ

Для віддаленого створення та запуску служби з командного рядка можна скористатися програмою SC (Sc.exe), яка входить до пакета ресурсів Resource Kit.

Хоча за допомогою програм Netsvc.exe і Instsrv.exe можна запустити службу на віддаленому комп'ютері, вони не дають змоги віддалено створити службу.

Примітка. Програма Srvinstw.exe також використовується для створення віддалених служб, але має графічний інтерфейс користувача. Це не засіб командного рядка.

ДОДАТКОВІ ВІДОМОСТІ

Програму Sc.exe можна використовувати для розробки служб для Windows. Ця програма, яка надається у складі пакета ресурсів Resource Kit, реалізує виклики всіх функцій інтерфейсу програмування застосунків (API) керування службами Windows. Параметри цих функцій можна вказати в командному рядку. Sc.exe також показує стан служби та значення, які зберігаються в полях структури стану. Крім того, ця програма дає змогу вказати ім'я віддаленого комп'ютера та викликати функції API служби або переглянути структури стану служби на віддаленому комп'ютері.

За допомогою Sc.exe можна викликати будь-яку функцію API керування службами та змінити будь-який параметр, використовуючи командний рядок. Ці особливості надають перевагу зручного створення або настроювання відомостей служби в реєстрі та в базі даних диспетчера служб. Для настроювання служби немає потреби створювати записі в реєстрі вручну й потім перезавантажувати комп'ютер, щоб диспетчер служб оновив свою базу даних.

Sc.exe використовує такий синтаксис:

Синтаксис 1 (використовується для запуску Sc.exe)
sc [Servername] Command Servicename [Optionname= Optionvalue...]
Синтаксис 2 (використовується для відображення довідки, за винятком команди query)
sc [Command]

Параметри

  • Servername
    Необов'язковий параметр. Зазначає ім'я віддаленого сервера, на якому мають виконуватися команди. Ім'я має починатися з двох зворотних скісних рисок (\) (наприклад, \\myserver). Щоб запустити Sc.exe на локальному комп'ютері, не вказуйте цей параметр.
  • Command
    Зазначає команду sc. Пам'ятайте, що для виконання багатьох команд sc потрібно мати права адміністратора на відповідному комп'ютері. Sc.exe підтримує такі команди.
    Config
    Змінює конфігурацію служби (сталі параметри).

    Continue
    Надсилає службі запит Continue.

    Control
    Надсилає службі запит Control.

    Create
    Створює службу (додає її до реєстру).

    Delete
    Видаляє службу (з реєстру).

    EnumDepend
    Перелічує залежності служби.

    GetDisplayName
    Отримує відображуване ім'я (DisplayName) служби.

    GetKeyName
    Отримує ім'я розділу служби (ServiceKeyName).

    Interrogate
    Надсилає службі запит Interrogate.

    Pause
    Надсилає службі запит Pause.

    qc
    Запитує конфігурацію служби. Додаткові відомості див. у розділі "SC QC".

    Query
    Запитує стан служби або перелічує стани для типів служб. Додаткові відомості див. у розділі "SC QUERY".

    Start
    Запускає службу

    Stop
    Надсилає службі запит Stop.
  • Servicename
    Зазначає ім'я, присвоєне розділу служби в реєстрі. Пам'ятайте, що це ім'я відрізняється від відображуваного імені служби (яке повертається командою net start і відображається в розділі "Служби" панелі керування). Програма Sc.exe використовує ім'я розділу служби як основний ідентифікатор служби.
  • Optionname
    За допомогою Optionname і Optionvalue можна вказувати імена та значення додаткових параметрів. Між іменем параметра та знаком рівності немає пробілу. Можна вказати одну або кілька пар імен і значень додаткових параметрів або не вказувати жодної.
  • Optionvalue
    Указує значення параметра з іменем, зазначеним в Optionname. Звичайно кожен параметр має свій діапазон припустимих значень. Його можна переглянути в довідці до відповідної команди.
Для виконання багатьох команд потрібні права адміністратора. Переконайтеся, що ви маєте їх на комп'ютері, на якому розробляється служба.

Команда sc create створює запис служби в реєстрі та в базі даних диспетчера служб.

Синтаксис
sc [Servername] create Servicename [Optionname=Optionvalue...

Параметри

  • Servername
    Необов'язковий параметр. Зазначає ім'я віддаленого сервера, на якому мають виконуватися команди. Ім'я має починатися з двох зворотних скісних рисок (\) (наприклад, \\myserver). Щоб запустити SC на локальному комп'ютері, не вказуйте цей параметр.
  • Servicename
    Зазначає ім'я, присвоєне розділу служби в реєстрі. Пам'ятайте, що це ім'я відрізняється від відображуваного імені служби (яке повертається командою net start і відображається в розділі "Служби" панелі керування). Програма Sc.exe використовує ім'я розділу служби як основний ідентифікатор служби.
  • Optionname
    За допомогою Optionname і Optionvalue можна вказувати імена та значення додаткових параметрів. Між іменем параметра та знаком рівності немає пробілу. Можна вказати одну або кілька пар імен і значень додаткових параметрів або не вказувати жодної. Команда sc query підтримує такі значення:OptionnameOptionvalue
    type=own, share, interact, kernel, filesys
    Тип служби, яку потрібно створити. Значення параметрів включають типи, які використовуються драйверами.
    (за промовчанням = share)

    start=boot, system, auto, demand, disabled
    Тип запуску служби. Значення параметрів включають типи, які використовуються драйверами.
    (за промовчанням = demand)

    error=normal, severe, critical, ignore
    Серйозність помилки, якщо служба не запускається під час завантаження.
    (за промовчанням = normal)

    binPath=(рядок)
    Шлях до двійкового файлу служби. Цей параметр не має значення за промовчанням; значення слід обов'язково вказати.

    group=(рядок)
    Ім'я групи, до якої належить служба. Список груп зберігається в розділі ServiceGroupOrder реєстру.
    (за промовчанням = нічого)

    tag=(рядок)
    Якщо цей параметр має значення "yes", програма Sc.exe отримує ідентифікатор TagId із виклику CreateService, але не відображає його.
    (за промовчанням = нічого)

    depend=(рядок із розділювачами-пробілами)
    Імена служб або груп, які мають запускатися перед запуском цієї служби.

    obj=(рядок)
    Ім'я облікового запису, для якого виконуватиметься служба. Для драйверів це ім'я об'єкта драйвера Windows.
    (за промовчанням = LocalSystem)

    DisplayName=(рядок)
    Ім'я служби, яке використовується у програмах інтерфейсу користувача.

    password=(рядок)
    Пароль. Це обов'язковий параметр для всіх облікових записів, крім LocalSystem.
Optionvalue
Указує зазначення параметра з іменем, зазначеним в Optionname. Список підтримуваних значень див. у довідці до відповідного імені параметра. Якщо параметр має бути рядковим, введення пустих лапок означає, що в параметрі передається пустий рядок.

Примітка. Команда sc create виконує операції функції API CreateService.

Нижче наведено приклад створення запису реєстру для служби "NewService" на комп'ютері \\remotecomputer:
sc \\remotecomputer create newservice binpath= c:\nt\system32\newserv.exe
За промовчанням створюється служба типу WIN32_SHARE_PROCESS із типом запуску SERVICE_DEMAND_START. Вона не має залежностей і виконується в контексті безпеки LocalSystem.

Нижче наведено приклад створення на локальному комп'ютері служби з автоматичним запуском, яка виконується у власному процесі. Вона має залежності від групи TDI і від служби NetBIOS. Пам'ятайте, що список залежностей, розділених пробілами, слід забрати в лапки.
sc create newservice binpath= c:\nt\system32\newserv.exe type= own start= auto depend= "+tdi netbios"
Додаткові відомості про програму Sc.exe див. у файлі Sc-dev.txt, який міститься в пакеті ресурсів Resource Kit. У цьому документі докладно описано Sc.exe.

Властивості

Номер статті: 251192 - Востаннє переглянуто: 12 червня 2007 р. - Редакція: 3.2
ЗАСТОСОВУЄТЬСЯ ДО:
  • Microsoft Windows NT Server 4.0 Terminal Server
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
Ключові слова: 
kbinfo KB251192

Надіслати відгук

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com