Como criar contas de serviço locais da área de trabalho do Windows?

2

Questão:

No Windows Home / Professional (Windows 10), qual é a maneira recomendada de criar uma conta de serviço local?

Existe alguma documentação para isso? (Powershell, GUI, etc).

Esclarecimento: Este não é um problema da Pergunta do Active Directory - ou da Conta Gerenciada pelo Serviço do Windows - somente na área de trabalho.

Contexto:

A instalação do BTSync do Bittorent solicita a opção de inicialização como um serviço local do Windows.

Durante a instalação, ele solicita o nome de usuário e a senha da conta de serviço local.

Como no Linux ...:

No Linux, normalmente usaria useradd e associasse a conta aos grupos apropriados:

useradd -M btsync
usermod -L btsync

Nota: -r é para criar contas de serviço no Linux, mas se ele desativa o login ou não parece inconsistente - e não documentado, (man link).

Nenhum diretório inicial seria criado, o login seria desabilitado,

elika kohen
fonte

Respostas:

1

Aplica-se a:

Windows 7, 8 / 8.1, Windows 10 - Home e Professional.

Programas (como o BTSync), que instalam serviços - mas não seguem as convenções de serviço do Windows como outros programas (IIS, MySQL, SQL Server, etc.).

Problemas:

  1. Defeito de Software: Algumas instalações (como o BitTorrent Sync) não instalam o Serviço do Windows - a menos que uma conta de usuário regular seja especificada.
  2. Comportamento esperado: Deve fornecer automaticamente a identidade correta da conta do Serviço NT, ou pelo menos permitir o usuário também.
  3. Problema de segurança: O usuário é forçado a criar outra conta de usuário regular [que, como prática recomendada, nunca deve ser feita].
  4. Solução alternativa: Depois que a Conta de Serviço Apropriada for especificada, essa conta de usuário temporária deverá ser excluída.

Referências

  1. O Windows não usa "Contas de serviço" - no sentido do Linux, mas sim " Contas Virtuais "e" Contas de serviço gerenciadas (para máquinas que participam de um ambiente LDAP .
  2. Convenção de Nomenclatura da Conta de Serviço: Por Convenção de Nomenclatura, parece que as contas virtuais devem seguir o formulário "Nome do Comando" - [Extensão] + "svc"

    "btsync.exe" becomes "NT Service\btsyncsvc"

Criando a conta virtual "NT Service":

  1. Abra o snap-in Serviços Locais, "services.msc"
  2. Navegue até o serviço desejado, (btsync), clique com o botão direito do mouse em "Propriedades".
  3. Selecione a guia "Log On".
  4. Selecione a opção para especificar um usuário.
  5. Digite o nome do serviço "Convencional", descrito acima: (sem aspas).

    NT Service\btsyncsvc

  6. REMOVA as senhas.

  7. Salvar - aplicar
  8. Reinicie o serviço.

Definindo permissões de pasta:

Definir permissões de pasta - usando o nome completo da conta: "NT Service \ btsyncsvc" (usando cotações pode ou não ser necessário dependendo do contexto ...) ...

Não é necessário que o btsyncsvc tenha permissões de execução, portanto remova se quiser - caso contrário, controle total.

Erro - O serviço não inicia devido a "Nenhum mapeamento entre nomes de contas e IDs de segurança":

Por exemplo, esse erro ocorrerá se você especificar "NT Service \ btsync" em vez de "NT Service \ btsyncsvc" ...

O comando a seguir retornará a lista de nomes de contas de serviço atuais.

Usando o PowerShell, (PS), verifique a lista em relação àquela que você especificou para usar em "Log On":

PS > get-service | foreach {Write-Host NT Service\$($_.Name)}

Erro - O serviço falha ao iniciar porque a conta não foi concedida como uma das permissões de serviço:

Este erro pode ocorrer se você especificou o "Nome Convencional" incorreto ou se as permissões realmente estão faltando - embora sejam atribuídas automaticamente se a convenção correta for usada.

No Windows 10 Home, o usuário não poderá usar o snap-in de diretiva de segurança local para configurá-lo (secpol.msc) e deve ser feito manualmente por meio do PowerShell ou outro utilitário.

Scripts do PowerShell:

Para corrigir isso, é possível usar o PowerShell. "Script PowerShell Grant-Log-on-as-a-service, da Galeria Technet" :

Se o PowerShell reportar um "Erro de ExecutionPolicy", pode ser necessário alterar a Política de Execução:

PS > Set-ExecutionPolicy RemoteSigned

... Pode resultar em um erro de assinatura - e depois alterado para:

PS > Set-ExecutionPolicy Unrestricted

Em seguida, use o Script para atribuir a permissão:

PS > .".\Add Account To LogonAsService.ps1" "NT Service\btsyncsvc"

Redefina a ExecutionPolicy se desejado:

PS > Set-ExecutionPolicy Restricted

Espero que isto ajude!

elika kohen
fonte