Chúng tôi có tập lệnh PowerShell khởi động lại dịch vụ trên một máy tính khác. Khi chúng tôi sử dụng các lệnh ghép ngắn kiểm soát dịch vụ tích hợp của PowerShell, như vậy:
$svc = Get-Service -Name MyService -ComputerName myservicehostname
Stop-Service -InputObject $svc
Start-Service -InputObject $svc
Chúng tôi nhận được lỗi này trở lại:
Dừng dịch vụ: Không thể mở dịch vụ MyService trên máy tính 'myservicehostname'.
Tuy nhiên, khi chúng tôi sử dụng sc.exe, như vậy:
C:\Windows\System32\sc \\myservicehostname stop MyService
C:\Windows\System32\sc \\myservicehostname start MyService
sự khởi đầu và dừng lại thành công
Người dùng thực hiện khởi động lại không phải là quản trị viên. Chúng tôi sử dụng subinacl để cấp quyền cho người dùng bắt đầu / dừng và truy vấn dịch vụ:
subinacl.exe /service MyService /GRANT=MyServiceControlUser=STO
Tại sao PowerShell không thể dừng dịch vụ của tôi nhưng sc.exe
có thể?