Acontece que eu não estava dando permissões suficientes com subinacl
. Os possíveis valores de acesso para a ação de concessão são:
F : Full Control
R : Generic Read
W : Generic Write
X : Generic eXecute
or any following values
L : Read controL
Q : Query Service Configuration
S : Query Service Status
E : Enumerate Dependent Services
C : Service Change Configuration
T : Start Service
O : Stop Service
P : Pause/Continue Service
I : Interrogate Service
U : Service User-Defined Control Commands
Eu estava usando S (status do serviço de consulta), T (serviço inicial) e O (serviço de parada). Também precisei de E (Enumerate Dependent Services). Parece que os cmdlets do PowerShell precisam examinar os serviços dependentes ao iniciar / parar.
Aqui está o meu comando subinacl
atualizado:
subinacl.exe /service MyService /GRANT=MyServiceControlUser=STOE
Se você não quiser fazer o download / usar subinacl.exe
, poderá usar o PowerShell por meio do módulo Carbono Grant-ServiceControlPermission ou Funções Grant-ServicePermission . (ISENÇÃO DE RESPONSABILIDADE: Eu sou o proprietário / mantenedor do projeto Carbon.)