Powershell作业“;“已完成”;但是没有完成它';的任务

Powershell作业“;“已完成”;但是没有完成它';的任务,powershell,start-job,Powershell,Start Job,我正在尝试通过powershell中的作业启动/停止服务。在本地计算机上测试时,作业将进入已完成状态,但服务不会更改其状态。有没有办法更好地了解我的工作 代码如下: $service = 'MSSQL$SQLEXPRESS' $server = 'myPC' $myJob = Start-Job -Scriptblock {Get-Service -Name $args[0] -computername $args[1] | Set-Service -Status Running} -Argum

我正在尝试通过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(EXPRESS)服务不会启动

但是,如果我从提升的shell运行以下命令,它将启动:

Get-Service -Name $service -computername $server | Set-Service -Status Running
当我运行GetJob时,以下是我看到的

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command                  
--     ----            -------------   -----         -----------     --------             -------                  
10     Job10           BackgroundJob   Completed     True            localhost            Get-Service -Name $arg...

这两个都是从提升的shell运行的,因此我绝对有权启动/停止服务。

使用
Get Job | Receive Job
查看作业的输出(包括任何错误)

或者(更具体地说)针对您创建的作业:

$myjob | Receive-Job
另外,您可以执行
$myjob | Wait Job
,而不是
启动睡眠
,以等待作业完成,然后再继续执行代码。您还可以:

$myjob | Wait-Job | Receive-Job

谢谢我发现我的问题是“获取服务:无法在计算机上打开服务控制管理器。此操作可能需要其他权限。”。奇怪的是,作业仍然会由于这样的错误而进入已完成状态。但是谢谢你的回答!