Share via


Método Create de la clase Win32_Service (Servicios de Escritorio remoto)

El método Crearclase WMI crea un nuevo servicio del sistema.

En este tema se usa la sintaxis de Managed Object Format (MOF). Para obtener más información sobre el uso de este método, vea Llamar a un método.

Sintaxis

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[]
);

Parámetros

Nombre [in]

Nombre del servicio que se va a instalar en el método Create . La longitud máxima de la cadena es de 256 caracteres. La base de datos de Service Control Manager conserva las mayúsculas y minúsculas de los caracteres, pero las comparaciones de nombres de servicio siempre no distinguen mayúsculas de minúsculas. Las barras diagonales (/) y las barras diagonales inversas dobles (\\) no son caracteres de nombre de servicio no válidos.

DisplayName [in]

Nombre para mostrar del servicio. Esta cadena tiene una longitud máxima de 256 caracteres. El nombre se conserva entre mayúsculas y minúsculas en Service Control Manager. Las comparaciones de DisplayName siempre no distinguen mayúsculas de minúsculas.

Restricciones: acepta el mismo valor que el parámetro Name .

Ejemplo: "Atdisk".

PathName [in]

Ruta de acceso completa al archivo ejecutable que implementa el servicio.

Ejemplo: "\SystemRoot\System32\drivers\afd.sys".

ServiceType [in]

Tipo de servicios proporcionados a procesos que los llaman.

1 (0x1)

Controlador de kernel

2 (0x2)

Controlador del sistema de archivos

4 (0x4)

Adapter (Adaptador)

8 (0x8)

Controlador recognizer

16 (0x10)

Propio proceso

32 (0x20)

Compartir proceso

256 (0x100)

Proceso interactivo

ErrorControl [in]

Gravedad del error si el método Create no se inicia. El valor indica la acción realizada por el programa de inicio si se produce un error. El sistema registra todos los errores.

0

No se notifica al usuario.

1

Se notifica al usuario.

2

El sistema se reinicia con la última configuración válida conocida.

3

El sistema intenta empezar con una buena configuración.

StartMode [in]

Modo de inicio del servicio base de Windows.

Arranque

Controlador de dispositivo iniciado por el cargador del sistema operativo. Este valor solamente es válido para servicios de controladores.

Sistema

Controlador de dispositivo iniciado por el proceso de inicialización del sistema operativo. Este valor solamente es válido para servicios de controladores.

Automático

Service to be started automatically by the Service Control Manager during system startup.

Manual

El Administrador de control de servicios iniciará el servicio cuando un proceso llama al método StartService .

Disabled

Servicio que ya no se puede iniciar.

DesktopInteract [in]

Si es true, el servicio puede crear o comunicarse con ventanas en el escritorio.

StartName [in]

Nombre de cuenta con el que se ejecuta el servicio. Dependiendo del tipo de servicio, el nombre de la cuenta puede tener el formato DomainName\Username o User Principal Name (UPN) (Username@DomainName). El proceso de servicio se registra con uno de estos dos formularios cuando se ejecuta. Si la cuenta pertenece al dominio integrado, se puede especificar .\Username. Si se especifica NULL , el servicio se inicia sesión como cuenta localSystem. Para los controladores de nivel de sistema o kernel, StartName contiene el nombre del objeto de controlador (es decir, \FileSystem\Rdr o \Driver\Xns) que usa el sistema de entrada y salida (E/S) para cargar el controlador del dispositivo. Si se especifica NULL , el controlador se ejecuta con un nombre de objeto predeterminado creado por el sistema de E/S basado en el nombre del servicio. Ejemplo: DWDOM\Administración.

StartPassword [in]

Contraseña al nombre de la cuenta especificado por el parámetro StartName . Especifique NULL si no cambia la contraseña. Especifique una cadena vacía si el servicio no tiene contraseña.

LoadOrderGroup [in]

Nombre del grupo asociado al nuevo servicio. Los grupos de orden de carga se encuentran en el registro y determinan la secuencia en la que los servicios se cargan en el sistema operativo. Si el puntero es NULL o si apunta a una cadena vacía, el servicio no pertenece a un grupo. Las dependencias entre grupos deben aparecer en el parámetro LoadOrderGroupDependencies . Los servicios de la lista de grupos de pedidos de carga se inician primero, seguidos de los servicios de los grupos que no están en la lista de grupos de pedidos de carga, seguidos de los servicios que no pertenecen a un grupo. El registro tiene una lista de grupos de pedidos de carga ubicados en:

HKEY_LOCAL_MACHINE\Sistema\Currentcontrolset\Control\ServiceGroupOrder

LoadOrderGroupDependencies [in]

Matriz de grupos de pedidos de carga que deben iniciarse antes de este servicio. Cada elemento de la matriz está delimitado por NULL y la lista finaliza con dos valores NULL . En Visual Basic o script, puede pasar un vbArray. Si el puntero es NULL o si apunta a una cadena vacía, el servicio no tiene dependencias. Los nombres de grupo deben tener el prefijo SC_GROUP_IDENTIFIER (definido en el archivo Winsvc.h) para diferenciarlos de un nombre de servicio, ya que los servicios y los grupos de servicios comparten el mismo espacio de nombres. La dependencia de un grupo significa que este servicio se puede ejecutar si al menos un miembro del grupo se está ejecutando después de un intento de iniciar todos los miembros del grupo.

ServiceDependencies [in]

Matriz que contiene nombres de servicios que deben iniciarse antes de que se inicie este servicio. Cada elemento de la matriz está delimitado por NULL y la lista finaliza con dos valores NULL . En Visual Basic o script, puede pasar un vbArray. Si el puntero es NULL o si apunta a una cadena vacía, el servicio no tiene dependencias. La dependencia de un servicio significa que este servicio solo se puede ejecutar si el servicio depende de está en ejecución.

Valor devuelto

Devuelve uno de los valores enumerados en la lista siguiente o cualquier otro valor para indicar un error. Para obtener códigos de error adicionales, consulte Constantes de error de WMI o WbemErrorEnum. Para obtener valores HRESULT generales, consulte Códigos de error del sistema.

0

Se aceptó la solicitud.

1

No se admite la solicitud.

2

El usuario no tenía el acceso necesario.

3

No se puede detener el servicio porque otros servicios que se están ejecutando dependen de él.

4

El código de control solicitado no es válido o no es aceptable para el servicio.

5

El código de control solicitado no se puede enviar al servicio porque el estado del servicio (propiedad State de la clase Win32_BaseService ) es igual a 0, 1 o 2.

6

El servicio no se ha iniciado.

7

El servicio no respondió a tiempo a la solicitud de inicio.

8

Error desconocido al iniciar el servicio.

9

No se encontró la ruta de acceso del directorio al archivo ejecutable del servicio.

10

El servicio ya se está ejecutando.

11

La base de datos para agregar un nuevo servicio está bloqueada.

12

Una dependencia en la que se basa este servicio se ha quitado del sistema.

13

El servicio no pudo encontrar el servicio necesario de un servicio dependiente.

14

El servicio se ha deshabilitado del sistema.

15

El servicio no tiene la autenticación correcta para ejecutarse en el sistema.

16

Este servicio se está quitando del sistema.

17

El servicio no tiene ningún subproceso de ejecución.

18

El servicio tiene dependencias circulares cuando se inicia.

19

Un servicio se ejecuta con el mismo nombre.

20

El nombre del servicio tiene caracteres no válidos.

21

Se han pasado parámetros no válidos al servicio.

22

La cuenta con la que se ejecuta este servicio no es válida o carece de los permisos para ejecutar el servicio.

23

El servicio existe en la base de datos de servicios disponibles del sistema.

24

El servicio se encuentra en pausa actualmente en el sistema.

Observaciones

Por lo general, los servicios se instalan de dos maneras: ya sea como parte de la instalación del sistema operativo o mediante un programa de instalación proporcionado por el desarrollador del servicio. Sin embargo, algunos servicios, especialmente aquellos creados internamente, podrían no tener un programa de instalación. En esas instancias, puede usar el método Create para instalar servicios mediante programación.

A pesar del nombre, el método Create no crea realmente un servicio; simplemente instala un servicio existente. Para usar este comando, debe copiar el archivo ejecutable del servicio en un equipo y, a continuación, usar Crear para instalar el servicio.

El método Create es similar al método Change . En ambos casos, las propiedades del servicio se pasan como parámetros al método . Al igual que con los parámetros usados con el método Change , el orden en el que se pasan estos parámetros es muy importante.

El parámetro LoadOrderGroup representa una agrupación de servicios del sistema que definen las dependencias de ejecución. Los servicios deben iniciarse en el orden especificado por el grupo de pedidos de carga, ya que los servicios dependen entre sí. Estos servicios dependientes requieren la presencia de los servicios antecedentes para funcionar correctamente.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista
Servidor mínimo compatible
Windows Server 2008
Espacio de nombres
Root\CIMv2\TerminalServices
MOF
TSCfgWmi.mof
Archivo DLL
TSCfgWmi.dll

Consulte también

Win32_Service

Clases de sistema operativo

Win32_TerminalService

Tareas de WMI: servicios