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 |
|
Archivo DLL |
|