相关疑难解决方法(0)

如何使用 Powershell 授予远程启动/停止服务的权限?

我们有一个 PowerShell 脚本,可以在另一台计算机上重新启动服务。当我们使用 PowerShell 的内置服务控制 cmdlet 时,像这样:

$svc = Get-Service -Name MyService -ComputerName myservicehostname
Stop-Service -InputObject $svc
Start-Service -InputObject $svc
Run Code Online (Sandbox Code Playgroud)

我们得到这个错误:

停止服务:无法在计算机“myservicehostname”上打开 MyService 服务。

但是,当我们使用 sc.exe 时,像这样:

C:\Windows\System32\sc \\myservicehostname stop MyService
C:\Windows\System32\sc \\myservicehostname start MyService
Run Code Online (Sandbox Code Playgroud)

启动和停止成功。

重新启动的用户不是管理员。我们使用 subinacl 授予用户启动/停止和查询服务的权限:

subinacl.exe /service MyService /GRANT=MyServiceControlUser=STO
Run Code Online (Sandbox Code Playgroud)

为什么 PowerShell 不能停止我的服务但sc.exe可以?

powershell windows-service

10
推荐指数
1
解决办法
3万
查看次数

标签 统计

powershell ×1

windows-service ×1