Temos um script do PowerShell que reinicia um serviço em outro computador. Quando usamos os cmdlets de controle de serviço interno do PowerShell, da seguinte maneira:
$svc = Get-Service -Name MyService -ComputerName myservicehostname
Stop-Service -InputObject $svc
Start-Service -InputObject $svc
Recebemos esse erro de volta:
Serviço de parada: Não é possível abrir o serviço MyService no computador 'myservicehostname'.
No entanto, quando usamos o sc.exe, é assim:
C:\Windows\System32\sc \\myservicehostname stop MyService
C:\Windows\System32\sc \\myservicehostname start MyService
o início e a parada são bem-sucedidos.
O usuário que está reiniciando não é um administrador. Usamos subinacl para conceder ao usuário permissões para iniciar / parar e consultar o serviço:
subinacl.exe /service MyService /GRANT=MyServiceControlUser=STO
Como o PowerShell não pode interromper meu serviço, mas sc.exe
pode?