Partilhar via


Contas de usuário de serviço

Cada serviço é executado no contexto de segurança de uma conta de usuário. O nome de usuário e a senha de uma conta são especificados pela funçãoCreateService no momento em que o serviço é instalado. O nome de usuário e a senha podem ser alterados usando a funçãoChangeServiceConfig. Você pode usar a funçãoQueryServiceConfig para obter o nome de usuário (mas não a senha) associado a um objeto de serviço. O gerenciador de controle de serviço (SCM) carrega automaticamente o perfil de usuário.

Ao iniciar um serviço, o SCM faz logon na conta associada ao serviço. Se o logon for bem-sucedido, o sistema produzirá um token de acesso e o anexará ao novo processo de serviço. Esse token identifica o processo de serviço em todas as interações subsequentes com objetos protegíveis (objetos que têm um descritor de segurança associado a eles). Por exemplo, se o serviço tentar abrir um identificador para um pipe, o sistema compara o token de acesso do serviço com o descritor de segurança do pipe antes de conceder acesso.

O SCM não mantém as senhas das contas de usuário do serviço. Se uma palavra-passe tiver expirado, o início de sessão falhará e o serviço não será iniciado. O administrador do sistema que atribui contas a serviços pode criar contas com senhas que nunca expiram. O administrador também pode gerenciar contas com senhas que expiram usando um programa de configuração de serviço alterar periodicamente as senhas.

Se um serviço precisar reconhecer outro serviço antes de compartilhar suas informações, o segundo serviço poderá usar a mesma conta do primeiro serviço ou poderá ser executado em uma conta pertencente a um alias reconhecido pelo primeiro serviço. Os serviços que precisam ser executados de forma distribuída pela rede devem ser executados em contas de todo o domínio.

Você pode especificar uma das seguintes contas especiais em vez de especificar uma conta de usuário para o serviço:

  • LocalService
  • NetworkService
  • LocalSystem