У нас есть сценарий PowerShell, который перезапускает службу на другом компьютере. Когда мы используем встроенные командлеты управления службами PowerShell, вот так:
$svc = Get-Service -Name MyService -ComputerName myservicehostname
Stop-Service -InputObject $svc
Start-Service -InputObject $svc
Мы получаем эту ошибку обратно:
Stop-Service: не удается открыть службу MyService на компьютере «myservicehostname».
Однако, когда мы используем sc.exe, вот так:
C:\Windows\System32\sc \\myservicehostname stop MyService
C:\Windows\System32\sc \\myservicehostname start MyService
начало и остановка удаются.
Пользователь, выполняющий перезапуск, не является администратором. Мы используем subinacl для предоставления пользователю разрешений на запуск / остановку и запрос сервиса:
subinacl.exe /service MyService /GRANT=MyServiceControlUser=STO
Почему PowerShell не может остановить мой сервис, но sc.exe
может?
источник
subinacl
раньше. Какая полезная утилита! Спасибо, что вернулись, чтобы оставить эту информацию для всех нас.Следующая команда работает должным образом на моем компьютере с Windows Server 2008 R2.
Можете ли вы также попробовать эту однократную команду, чтобы определить, работает ли она, и проверили ли вы, что пользователь является членом группы, которая является членом группы «Пользователи» на целевых серверах?
источник