Parece não haver uma forma de fazer isso com base na GUI, a menos que você tenha ingressado em um domínio - pelo menos nenhum que eu possa encontrar em nenhum lugar -, por isso explorei um pouco mais e descobri uma resposta que funciona para a nossa solução.
Eu não entendi o que a representação de string significava no artigo da base de conhecimento, mas fazer um pouco de escavação me levou a descobrir que é sintaxe SDDL. Outras escavações levaram-me a artigo de Alun Jones que explica como obter o descritor de segurança para um serviço e o que cada bit significa. MS KB914392 tem mais detalhes.
Para anexar ao descritor de segurança existente do serviço, use sc sdshow "Service Name"
para obter o descritor existente. Se este for um antigo serviço .NET do Windows - como é o caso do nosso - o descritor de segurança deve ser algo como isto:
D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOC
RRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CR;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)S:(AU;FA
;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
Precisamos conceder permissões RP
(para iniciar o serviço), WP
(para interromper o serviço), DT
(para pausar / continuar o serviço) e LO
(para consultar o status atual do serviço ). Isso pode ser feito adicionando nossa conta de serviço ao grupo Usuários avançados, mas eu só quero conceder acesso individual à conta na qual o serviço de manutenção é executado.
Usando runas
para abrir um prompt de comando na conta de serviço, executei whoami /all
, o que me deu o SID da conta de serviço e, em seguida, construí o SDDL adicional abaixo:
(A;;RPWPDTLO;;;S-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxx-xxxx)
Isso é adicionado à seção D: da string SDDL acima:
D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOC
RRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CR;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)(A;;RPWP
DTLO;;;S-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxx-xxxx)S:(AU;FA;CCDCLCSWRPWPDTLOC
RSDRCWDWO;;;WD)
Isso é aplicado ao serviço usando o comando sc sdset
:
sc sdset "Service Name" D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;
CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CR;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU
)(A;;RPWPDTLO;;;S-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxx-xxxx)S:(AU;FA;CCDCLCSW
RPWPDTLOCRSDRCWDWO;;;WD)
Se tudo correr conforme o planejado, o serviço poderá ser iniciado, interrompido, pausado e ter seu status consultado pelo usuário definido pelo SID acima.