Nous avons un script PowerShell qui redémarre un service sur un autre ordinateur. Lorsque nous utilisons les applets de commande de contrôle de service intégrées de PowerShell, comme ceci:
$svc = Get-Service -Name MyService -ComputerName myservicehostname
Stop-Service -InputObject $svc
Start-Service -InputObject $svc
Nous récupérons cette erreur:
Stop-Service: impossible d'ouvrir le service MyService sur l'ordinateur 'myservicehostname'.
Cependant, lorsque nous utilisons sc.exe, comme ceci:
C:\Windows\System32\sc \\myservicehostname stop MyService
C:\Windows\System32\sc \\myservicehostname start MyService
le démarrage et l'arrêt réussissent.
L'utilisateur effectuant le redémarrage n'est pas un administrateur. Nous utilisons subinacl pour accorder aux utilisateurs des autorisations pour démarrer / arrêter et interroger le service:
subinacl.exe /service MyService /GRANT=MyServiceControlUser=STO
Comment se fait-il que PowerShell ne puisse pas arrêter mon service mais le sc.exe
peut?