Compartir a través de


Tabla ServiceInstall

La tabla ServiceInstall se usa para instalar un servicio y tiene las columnas siguientes.

Columna Tipo Llave Nullable
ServiceInstall identificador Y N
Nombre con formato N N
DisplayName con formato N Y
ServiceType DoubleInteger N N
StartType DoubleInteger N N
ErrorControl DoubleInteger N N
LoadOrderGroup con formato N Y
Dependencias con formato N Y
StartName con formato N Y
Contraseña con formato N Y
Argumentos con formato N Y
Componente_ identificador N N
Descripción con formato N Y

 

Columnas

ServiceInstall

Esta es la clave principal de la tabla.

nombre de

Esta columna es la cadena que proporciona el nombre del servicio que se va a instalar. La cadena tiene una longitud máxima de 256 caracteres. La base de datos del Administrador de control de servicios conserva las mayúsculas y minúsculas de los caracteres en el nombre del servicio, pero las comparaciones de nombres de servicio no distinguen mayúsculas de minúsculas. La barra diagonal (/) y la barra diagonal inversa (\) son caracteres de nombre de servicio no válidos.

DisplayName

Esta columna es la cadena localizable que usan los programas de interfaz de usuario para identificar el servicio. La cadena tiene una longitud máxima de 256 caracteres. El administrador de control de servicio conserva las mayúsculas y minúsculas del nombre para mostrar, pero las comparaciones de nombres para mostrar no distinguen mayúsculas de minúsculas.

ServiceType

Esta columna es un conjunto de marcas de bits que especifican el tipo de servicio. Uno de los siguientes tipos de servicio debe especificarse en esta columna.

Tipo de servicio Valor Descripción
SERVICE_WIN32_OWN_PROCESS 0x00000010 Un servicio De Microsoft Win32 que ejecuta su propio proceso.
SERVICE_WIN32_SHARE_PROCESS 0x00000020 Un servicio Win32 que comparte un proceso.
SERVICE_INTERACTIVE_PROCESS 0x00000100 Un servicio Win32 que interactúa con el escritorio. Este valor no se puede usar solo y debe agregarse a uno de los dos tipos anteriores. La columna StartName debe establecerse en LocalSystem o null al usar esta marca.

 

No se admiten los siguientes tipos de servicio.

Tipo de servicio Valor Descripción
SERVICE_KERNEL_DRIVER 0x00000001 Un servicio de controlador.
SERVICE_FILE_SYSTEM_DRIVER 0x00000002 Un servicio de controlador del sistema de archivos.

 

StartType

Esta columna es un conjunto de marcas de bits que especifican cuándo iniciar el servicio. Uno de los siguientes tipos de inicio de servicio debe especificarse en esta columna.

Tipo de inicio de servicio Valor Descripción
SERVICE_AUTO_START 0x00000002 Se inicia un servicio durante el inicio del sistema.
SERVICE_DEMAND_START 0x00000003 Un servicio se inicia cuando el administrador de control de servicio llama a la funciónStartService.
SERVICE_DISABLED 0x00000004 Especifica un servicio que ya no se puede iniciar.

 

Windows Installer no puede usar las opciones SERVICE_BOOT_START y SERVICE_SYSTEM_START.

ErrorControl

Esta columna especifica la acción realizada por el programa de inicio si el servicio no se inicia durante el inicio. Estos valores afectan a los eventos StartService de ServiceControl para los servicios instalados. Se debe especificar una de las marcas de control de error siguientes en esta columna.

Agregar la constante msidbServiceInstallErrorControlVital (valor = 0x08000) a las marcas de la tabla siguiente especifica que la instalación general debe producir un error si el servicio no se puede instalar en el sistema.

Marca de control de error Valor Acción del programa de inicio
SERVICE_ERROR_IGNORE 0x00000000 Registra el error y continúa con la operación de inicio.
SERVICE_ERROR_NORMAL 0x00000001 Registra el error, muestra un cuadro de mensaje y continúa la operación de inicio.
SERVICE_ERROR_CRITICAL 0x00000003 Registra el error si es posible y el sistema se reinicia con la última configuración conocida como buena. Si se está iniciando la última configuración correcta conocida, se produce un error en la operación de inicio.

 

LoadOrderGroup

Esta columna contiene la cadena que asigna un nombre al grupo de ordenación de carga del que este servicio es miembro. Especifique null o una cadena vacía si el servicio no pertenece a un grupo.

Dependencias de

Esta columna es una lista de nombres de servicios o grupos de ordenación de carga que el sistema debe iniciar antes de este servicio. Separe los nombres de la lista por Nulls. Si el servicio no tiene dependencias, especifique Null o una cadena vacía. Use la sintaxis [~] para insertar un valor Null. 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 intentar iniciar todos los miembros del grupo.

Por ejemplo, para requerir que el sistema inicie service1 y service2, antes de iniciar el servicio que aparece en la columna ServiceInstall, escriba service1[~]service2[~][~] en la columna Dependencias. Los identificadores service1 y service2 deben producirse en la clave principal de la tabla o ser el nombre del servicio que ya está instalado.

Debe prefijar los nombres de grupo con + para que se puedan distinguir de un nombre de servicio. Para requerir que el sistema inicie service1 y al menos un miembro del grupo de pedidos MyGroup antes de iniciar el servicio que aparece en la columna ServiceInstall, escriba service1[~]+MyGroup[~][~].

StartName

El servicio se inicia sesión como el nombre proporcionado por la cadena de esta columna. Si el tipo de servicio es SERVICE_WIN32_OWN_PROCESS usar un nombre de cuenta con el formato: NombreDeDominio\NombreDeUsuario. Si la cuenta pertenece al dominio integrado, se permite especificar .\UserName. La cuenta localSystem debe usarse si el tipo de servicio es SERVICE_WIN32_SHARE_PROCESS o SERVICE_INTERACTIVE_PROCESS. La función CreateService usa la cuenta LocalSystem si StartName se especifica como null y la mayoría de los servicios dejan esta columna en blanco.

contraseña de

Esta cadena es la contraseña del nombre de cuenta especificado en la columna StartName. Tenga en cuenta que el usuario debe tener permisos para iniciar sesión como servicio. El servicio no tiene contraseña si StartName es null o una cadena vacía. El nombre de inicio de LocalSystem es NULL y, por tanto, la contraseña de esta instancia es null, por lo que la mayoría de los servicios dejan esta columna en blanco.

Tenga en cuenta que después de eliminar un servicio instalado con un nombre de usuario y una contraseña, el instalador no puede revertir el servicio sin usar primero una acción personalizada para obtener la contraseña. El instalador puede adquirir toda la información necesaria sobre el servicio, excepto la contraseña, que se almacena en una parte protegida del sistema. La acción personalizada adquiere la contraseña al solicitar al usuario, leer una propiedad de la base de datos o leer un archivo. A continuación, la acción personalizada debe llamar a ChangeServiceConfig, para proporcionar la contraseña, antes de reinstalar el servicio.

Windows Installer no escribe el valor especificado en el campo Contraseña en el archivo de registro.

argumentos de

Esta columna contiene los argumentos o propiedades de la línea de comandos necesarios para ejecutar el servicio.

Component_

Clave externa para la columna uno de los tabla de componentes. Tenga en cuenta que para instalar este servicio mediante la tabla InstallService, KeyPath para este componente debe ser el archivo ejecutable del servicio.

descripción de

Esta columna contiene una descripción localizable para el servicio que se está configurando. Si esta columna se deja en blanco, el instalador usa la descripción existente del servicio si existe. Para obtener más información, consulte SERVICE_DESCRIPTION en el Kit de desarrollo de software (SDK) de Microsoft Windows. Para borrar una descripción existente, escriba "[~]" en esta columna. Esto da como resultado una descripción en blanco para un servicio nuevo o existente.

Observaciones

La acción InstallServices en tablas de secuencia procesa la información de esta tabla. Para obtener información sobre el uso de tablas de secuencia de , vea Using a Sequence Table.

Esta tabla tiene la mayoría de los parámetros de la función Win32 CreateService.

Aunque es posible usar la interfaz de usuario para especificar que un servicio se instale como run-from-source, el instalador no admite realmente este tipo de instalación. Los servicios que se ejecutan con el nivel de privilegios del sistema local deben instalarse para ejecutarse desde el disco duro local. Evite instalar servicios que suplantan los privilegios de un usuario determinado, ya que esto puede escribir datos de seguridad en un registro o en el registro del sistema. Esto puede crear un problema de seguridad, un conflicto de contraseñas o la pérdida de datos de configuración cuando se reinicia el sistema.

Para eliminar un servicio durante una desinstalación, debe haber un registro correspondiente para el servicio en la tabla de ServiceControl y el msidbServiceControlEventUninstallDelete marca debe aparecer en la columna Evento. El instalador no elimina un servicio en la tabla ServiceInstall durante la desinstalación sin esta entrada en la tabla ServiceControl.

Para obtener información sobre cómo proteger un servicio, consulte tabla MsiLockPermissionsEx.

Validación

ICE03
ICE06
ICE32
ICE45
ICE46
ICE66
ICE69