Поделиться через


Создание метода класса Win32_Service (службы удаленных рабочих столов)

Метод Класса CreateWMI создает новую системную службу.

В этом разделе используется синтаксис формата управляемого объекта (MOF). Дополнительные сведения об использовании этого метода см. в разделе Вызов метода.

Синтаксис

uint32 Create(
  [in] string  Name,
  [in] string  DisplayName,
  [in] string  PathName,
  [in] uint8   ServiceType,
  [in] uint8   ErrorControl,
  [in] string  StartMode,
  [in] boolean DesktopInteract,
  [in] string  StartName,
  [in] string  StartPassword,
  [in] string  LoadOrderGroup,
  [in] string  LoadOrderGroupDependencies[],
  [in] string  ServiceDependencies[]
);

Параметры

Имя [in]

Имя службы, устанавливаемой в методе Create . Максимальная длина строки составляет 256 символов. В базе данных Service Control Manager сохраняется регистр символов, но при сравнении имен служб регистр всегда не учитывается. Косая черта (/) и двойная обратная косая черта (\\) являются недопустимыми символами имени службы.

DisplayName [in]

Отображаемое имя службы. Максимальная длина этой строки равна 256 символам. Имя сохраняется с учетом регистра в диспетчере управления службами. Сравнение DisplayName всегда не учитывает регистр.

Ограничения: принимает то же значение, что и параметр Name .

Пример: "Atdisk".

PathName [in]

Полный путь к исполняемому файлу, который реализует службу.

Пример: "\SystemRoot\System32\drivers\afd.sys".

ServiceType [in]

Типы служб, предоставляемых процессам, которые их вызывают.

1 (0x1)

Драйвер ядра

2 (0x2)

Драйвер файловой системы

4 (0x4)

Адаптер

8 (0x8)

Драйвер распознавателя

16 (0x10)

Собственный процесс

32 (0x20)

Процесс предоставления общего доступа

256 (0x100)

Интерактивный процесс

ErrorControl [in]

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

0

Пользователь не получает уведомление.

1

Пользователь получает уведомление.

2

Система перезапускается в последней известной рабочей конфигурации.

3

Система пытается начать с хорошей конфигурации.

StartMode [in]

Режим запуска базовой службы Windows.

Загрузка

Драйвер устройства, запущенный загрузчиком операционной системы. Это значение допустимо только для служб драйверов.

Система

Драйвер устройства, запущенный процессом инициализации операционной системы. Это значение допустимо только для служб драйверов.

Автоматически

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

Вручную

Служба, запускаемая диспетчером управления службами, когда процесс вызывает метод StartService .

Выключено

Служба, которая больше не может быть запущена.

DesktopInteract [in]

Если значение равно true, служба может создавать окна на рабочем столе или взаимодействовать с ними.

StartName [in]

Имя учетной записи, с которой выполняется служба. В зависимости от типа службы имя учетной записи может быть в формате Имя_домена\Имя_пользователя или Имя участника-пользователя (UPN) (Username@DomainName). При запуске процесс службы регистрируется с помощью одной из этих двух форм. Если учетная запись принадлежит встроенному домену, можно указать .\Username. Если задано значение NULL , служба входит в систему под учетной записью LocalSystem. Для драйверов уровня ядра или системы StartName содержит имя объекта драйвера (т. е. \FileSystem\Rdr или \Driver\Xns), которое система ввода-вывода использует для загрузки драйвера устройства. Если задано значение NULL , драйвер запускается с именем объекта по умолчанию, созданным системой ввода-вывода на основе имени службы. Пример: DWDOM\Администратор.

StartPassword [in]

Пароль для имени учетной записи, указанной параметром StartName . Если вы не изменяете пароль, укажите ЗНАЧЕНИЕ NULL . Если служба не имеет пароля, указывается пустая строка.

LoadOrderGroup [in]

Имя группы, связанной с новой службой. Группы порядка загрузки содержатся в реестре и определяют последовательность, в которой службы загружаются в операционную систему. Если указатель имеет значение NULL или указывает на пустую строку, служба не принадлежит группе. Зависимости между группами должны быть перечислены в параметре LoadOrderGroupDependencies . Сначала запускаются службы в списке групп упорядочения нагрузки, за ними следуют службы в группах, не входящих в список групп упорядочения нагрузки, а затем службы, которые не принадлежат к группе. Реестр содержит список групп упорядочения загрузки, расположенный по адресу:

HKEY_LOCAL_MACHINE\Системы\CurrentControlSet\Управления\ServiceGroupOrder

LoadOrderGroupDependencies [in]

Массив групп упорядочения нагрузки, которые должны запускаться перед этой службой. Каждый элемент в массиве отделяется значением NULL , а список завершается двумя значениями NULL . В Visual Basic или скрипте можно передать vbArray. Если указатель имеет значение NULL или указывает на пустую строку, служба не имеет зависимостей. Имена групп должны иметь префикс символа SC_GROUP_IDENTIFIER (определенного в файле Winsvc.h), чтобы отличать их от имени службы, так как службы и группы служб используют одно и то же пространство имен. Зависимость от группы означает, что эта служба может запускаться, если после попытки запуска всех членов группы запущен хотя бы один из участников группы.

ServiceDependencies [in]

Массив, содержащий имена служб, которые должны быть запущены перед запуском этой службы. Каждый элемент в массиве разделен значением NULL , а список завершается двумя значениями NULL . В Visual Basic или скрипте можно передать vbArray. Если указатель имеет значение NULL или указывает на пустую строку, служба не имеет зависимостей. Зависимость от службы означает, что эта служба может выполняться только в том случае, если запущена служба, от которую она зависит.

Возвращаемое значение

Возвращает одно из значений, перечисленных в следующем списке, или любое другое значение, указывающее на ошибку. Дополнительные коды ошибок см. в разделе Константы ошибок WMI или WbemErrorEnum. Общие значения HRESULT см. в разделе Системные коды ошибок.

0

Запрос принят.

1

Запрос не поддерживается.

2

У пользователя не было необходимого доступа.

3

Службу нельзя остановить, так как от нее зависят другие работающие службы.

4

Запрошенный управляющий код недопустим или неприемлем для данной службы.

5

Запрошенный код элемента управления не может быть отправлен в службу, так как состояние службы (свойство State класса Win32_BaseService ) равно 0, 1 или 2.

6

Служба не запущена.

7

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

8

Неизвестный сбой при запуске службы.

9

Путь к каталогу к исполняемому файлу службы не найден.

10

Служба уже запущена.

11

База данных для добавления новой службы заблокирована.

12

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

13

Этой службе не удалось найти службу, которая необходима зависимой службе.

14

Эта служба была отключена в системе.

15

Эта служба не поддерживает проверку подлинности, необходимую для работы в системе.

16

Эта служба удаляется из системы.

17

Служба не имеет потока выполнения.

18

Служба имеет циклические зависимости при запуске.

19

Служба выполняется под тем же именем.

20

Имя службы содержит недопустимые символы.

21

Службе переданы недопустимые параметры.

22

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

23

Служба существует в базе данных доступных в системе служб.

24

Служба в данный момент приостановлена в системе.

Комментарии

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

Несмотря на имя, метод Create фактически не создает службу; он просто устанавливает существующую службу. Чтобы использовать эту команду, необходимо скопировать исполняемый файл службы на компьютер, а затем с помощью команды Создать установить службу.

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

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

Требования

Требование Значение
Минимальная версия клиента
Windows Vista
Минимальная версия сервера
Windows Server 2008
Пространство имен
Root\CIMv2\TerminalServices
MOF
TSCfgWmi.mof
DLL
TSCfgWmi.dll

См. также раздел

Win32_Service

Классы операционной системы

Win32_TerminalService

Задачи WMI: службы