Kami memiliki skrip PowerShell yang me-restart layanan di komputer lain. Ketika kami menggunakan cmdlet kontrol layanan bawaan PowerShell, seperti:
$svc = Get-Service -Name MyService -ComputerName myservicehostname
Stop-Service -InputObject $svc
Start-Service -InputObject $svc
Kami mendapatkan kesalahan ini kembali:
Stop-Service: Tidak dapat membuka layanan MyService di komputer 'myservicehostname'.
Namun, ketika kita menggunakan sc.exe, seperti:
C:\Windows\System32\sc \\myservicehostname stop MyService
C:\Windows\System32\sc \\myservicehostname start MyService
mulai dan berhenti berhasil.
Pengguna yang melakukan restart bukanlah administrator. Kami menggunakan subinacl untuk memberikan izin kepada pengguna untuk memulai / menghentikan dan meminta layanan:
subinacl.exe /service MyService /GRANT=MyServiceControlUser=STO
Kenapa PowerShell tidak bisa menghentikan layanan saya tetapi sc.exe
bisa?