我正在尝试通过 powershell 中的作业启动/停止服务。在我的本地机器上进行测试时,作业将进入完成状态,但服务不会改变其状态。有没有办法更好地了解我的工作?
这是代码:
$service = 'MSSQL$SQLEXPRESS'
$server = 'myPC'
$myJob = Start-Job -Scriptblock {Get-Service -Name $args[0] -computername $args[1] | Set-Service -Status Running} -ArgumentList @($service,$server)
sleep -Seconds 10
get-job
当我运行该代码段时,SQL SQL (EXPRESS) 服务没有启动。
但是,如果我从提升的 shell 运行以下命令,它将启动:
Get-Service -Name $service -computername $server | Set-Service -Status Running
当我运行 Get-Job 时,这就是我所看到的......
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
10 Job10 BackgroundJob Completed True localhost Get-Service -Name $arg...
它们都是从提升的 shell 运行的,所以我绝对有权启动/停止服务。