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?
la source
subinacl
auparavant. Quel utilitaire utile! Merci d'être revenu pour laisser ces informations au reste d'entre nous.La commande suivante fonctionne comme prévu sur mon ordinateur Windows Server 2008 R2.
Pouvez-vous également essayer cette commande unique pour déterminer si cela fonctionne, et avez-vous vérifié que l'utilisateur est membre d'un groupe qui est membre du groupe d'utilisateurs sur les serveurs cibles?
la source