Tabela ServiceInstall
A tabela ServiceInstall é usada para instalar um serviço e tem as seguintes colunas.
Coluna | Tipo | Chave | Nulo |
---|---|---|---|
ServiceInstall [en] | Identificador | Y | N |
Designação | Formatado | N | N |
DisplayName | Formatado | N | Y |
Tipo de Serviço | DoubleInteger | N | N |
StartType | DoubleInteger | N | N |
ErrorControl | DoubleInteger | N | N |
LoadOrderGroup | Formatado | N | Y |
Dependências | Formatado | N | Y |
StartName | Formatado | N | Y |
Palavra-passe | Formatado | N | Y |
Argumentos | Formatado | N | Y |
Component_ | Identificador | N | N |
Descrição | Formatado | N | Y |
Colunas
-
ServiceInstall
-
Esta é a chave primária para a tabela.
-
Nome
-
Esta coluna é a cadeia de caracteres que dá o nome do serviço a ser instalado. A cadeia de caracteres tem um comprimento máximo de 256 caracteres. O banco de dados do gerenciador de controle de serviço preserva as maiúsculas e minúsculas dos caracteres no nome do serviço, mas as comparações de nomes de serviço não diferenciam maiúsculas de minúsculas. A barra (/) e a barra invertida (\) são caracteres de nome de serviço inválidos.
-
DisplayName
-
Esta coluna é a cadeia de caracteres localizável que os programas de interface do usuário usam para identificar o serviço. A cadeia de caracteres tem um comprimento máximo de 256 caracteres. O gerenciador de controle de serviço preserva as maiúsculas e minúsculas do nome para exibição, mas as comparações de nomes de exibição não diferenciam maiúsculas de minúsculas.
-
ServiceType
-
Esta coluna é um conjunto de sinalizadores de bits que especificam o tipo de serviço. Um dos seguintes tipos de serviço deve ser especificado nesta coluna.
Tipo de serviço Valor Descrição SERVICE_WIN32_OWN_PROCESS 0x00000010 Um serviço Microsoft Win32 que executa seu próprio processo. SERVICE_WIN32_SHARE_PROCESS 0x00000020 Um serviço Win32 que compartilha um processo. SERVICE_INTERACTIVE_PROCESS 0x00000100 Um serviço Win32 que interage com a área de trabalho. Este valor não pode ser usado sozinho e deve ser adicionado a um dos dois tipos anteriores. A coluna StartName deve ser definida como LocalSystem ou null ao usar esse sinalizador. Os seguintes tipos de serviço não são suportados.
Tipo de serviço Valor Descrição SERVICE_KERNEL_DRIVER 0x00000001 Um serviço de motorista. SERVICE_FILE_SYSTEM_DRIVER 0x00000002 Um serviço de driver de sistema de arquivos. -
StartType
-
Esta coluna é um conjunto de sinalizadores de bits que especificam quando iniciar o serviço. Um dos seguintes tipos de início de serviço deve ser especificado nesta coluna.
O Windows Installer não pode usar as opções SERVICE_BOOT_START e SERVICE_SYSTEM_START.
-
ErrorControl
-
Esta coluna especifica a ação executada pelo programa de inicialização se o serviço falhar ao iniciar durante a inicialização. Esses valores afetam os eventos ServiceControl StartService para serviços instalados. Um dos seguintes sinalizadores de controle de erro deve ser especificado nesta coluna.
Adicionar a constante msidbServiceInstallErrorControlVital (value = 0x08000) aos sinalizadores na tabela a seguir especifica que a instalação geral deve falhar se o serviço não puder ser instalado no sistema.
Sinalizador de controle de erro Valor Ação do programa Startup SERVICE_ERROR_IGNORE 0x00000000 Registra o erro e continua com a operação de inicialização. SERVICE_ERROR_NORMAL 0x00000001 Registra o erro, exibe uma caixa de mensagem e continua a operação de inicialização. SERVICE_ERROR_CRITICAL 0x00000003 Registra o erro se for possível e o sistema é reiniciado com a última configuração conhecida por ser boa. Se a última configuração em boas condições estiver sendo iniciada, a operação de inicialização falhará. -
LoadOrderGroup
-
Esta coluna contém a cadeia de caracteres que nomeia o grupo de ordenação de carga do qual este serviço é membro. Especifique null ou uma string vazia se o serviço não pertencer a um grupo.
-
Dependências
-
Esta coluna é uma lista de nomes de serviços ou grupos de pedidos de carga que o sistema deve iniciar antes deste serviço. Separe os nomes na lista por Nulos. Se o serviço não tiver dependências, especifique Nulo ou uma cadeia de caracteres vazia. Use a sintaxe [~] para inserir um Null. A dependência de um grupo significa que esse serviço pode ser executado se pelo menos um membro do grupo estiver sendo executado após uma tentativa de iniciar todos os membros do grupo.
Por exemplo, para exigir que o sistema inicie service1 e service2, antes de iniciar o serviço listado na coluna ServiceInstall, insira service1[~]service2[~][~] na coluna Dependências. Os identificadores service1 e service2 devem ocorrer na chave primária da tabela ou ser o nome do serviço que já está instalado.
Você deve prefixar nomes de grupo com + para que eles possam ser distinguidos de um nome de serviço. Para exigir que o sistema inicie o serviço1 e pelo menos um membro do grupo de pedidos MyGroup antes de iniciar o serviço listado na coluna ServiceInstall, digite service1[~]+MyGroup[~][~].
-
StartName
-
O serviço é conectado como o nome dado pela cadeia de caracteres nesta coluna. Se o tipo de serviço for SERVICE_WIN32_OWN_PROCESS use um nome de conta no formato: DomainName\UserName. Se a conta pertencer ao domínio interno, é permitido especificar .\UserName. A conta LocalSystem deve ser usada se o tipo de serviço for SERVICE_WIN32_SHARE_PROCESS ou SERVICE_INTERACTIVE_PROCESS. A funçãoCreateService usa a conta LocalSystem se StartName for especificado como nulo e, portanto, a maioria dos serviços deixar essa coluna em branco.
-
Palavra-passe
-
Essa cadeia de caracteres é a senha para o nome da conta especificado na coluna StartName. Observe que o usuário deve ter permissões para fazer logon como um serviço. O serviço não tem senha se StartName for null ou uma string vazia. O Startname de LocalSystem é null e, portanto, a senha nesta instância é null, portanto, a maioria dos serviços deixa essa coluna em branco.
Observe que depois de excluir um serviço que foi instalado com um nome de usuário e senha, o instalador não pode reverter o serviço sem primeiro usar uma ação personalizada para obter a senha. O instalador pode adquirir todas as informações necessárias sobre o serviço, exceto a senha, que é armazenada em uma parte protegida do sistema. A ação personalizada adquire a senha solicitando ao usuário, lendo uma propriedade do banco de dados ou lendo um arquivo. A ação personalizada deve chamar ChangeServiceConfig, para fornecer a senha, antes de reinstalar o serviço.
O Windows Installer não grava o valor inserido no campo Senha no arquivo de log.
-
Argumentos
-
Esta coluna contém quaisquer argumentos de linha de comando ou propriedades necessárias para executar o serviço.
-
Component_
-
Chave externa para a coluna um da Tabela de Componentes . Observe que para instalar esse serviço usando a tabela InstallService, o KeyPath para este componente deve ser o arquivo executável para o serviço.
-
Descrição
-
Esta coluna contém uma descrição localizável para o serviço que está sendo configurado. Se esta coluna for deixada em branco, o instalador usa a descrição existente do serviço, se existir. Para obter mais informações, consulte SERVICE_DESCRIPTION no Microsoft Windows Software Development Kit (SDK). Para apagar uma descrição existente, digite "[~]" nesta coluna. Isso resulta em uma descrição em branco para um serviço novo ou existente.
Comentários
A ação InstallServices em tabelas de sequência processa as informações nesta tabela. Para obter informações sobre como usar tabelas de sequência, consulte Usando uma tabela de sequência.
Esta tabela tem a maioria dos parâmetros para o Win32 função de CreateService.
Embora seja possível usar a interface do usuário para especificar que um serviço seja instalado como executado a partir da fonte, o instalador não suporta esse tipo de instalação. Os serviços executados com o nível de privilégio do sistema local devem ser instalados para serem executados a partir do disco rígido local. Evite instalar serviços que representem os privilégios de um usuário específico, pois isso pode gravar dados de segurança em um log ou no registro do sistema. Isso pode potencialmente criar um problema de segurança, conflito de senha ou perda de dados de configuração quando o sistema é reiniciado.
Para excluir um serviço durante uma desinstalação, deve haver um registro correspondente para o serviço na tabela ServiceControl e o sinalizador msidbServiceControlEventUninstallDelete deve aparecer na coluna Evento. O instalador não exclui um serviço na tabela ServiceInstall durante a desinstalação sem essa entrada na tabela ServiceControl.
Para obter informações sobre como proteger um serviço, consulte a Tabela MsiLockPermissionsEx.
Validação