Compartilhar 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ção CreateService no momento em que o serviço é instalado. O nome de usuário e a senha podem ser alterados usando a função ChangeServiceConfig . Você pode usar a função QueryServiceConfig para obter o nome de usuário (mas não a senha) associado a um objeto de serviço. O SCM (gerenciador de controle de serviço) carrega automaticamente o perfil do 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 anexa 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 comparará 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 de serviço. Se uma senha tiver expirado, o logon 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 para 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 que o primeiro serviço ou pode ser executado em uma conta que pertença a um alias reconhecido pelo primeiro serviço. Os serviços que precisam ser executados de maneira 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: