Powershell 作业 "Completed" 但没有完成它的任务
Powershell Job "Completed" but did not finish it's task
我正在尝试 start/stop 通过当权工作提供服务 shell。在我的本地机器上对此进行测试时,作业将进入完成状态,但服务不会更改其状态。有没有办法更好地了解我的工作?
代码如下:
$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
当我 运行 找到工作时,这是我看到的...
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
10 Job10 BackgroundJob Completed True localhost Get-Service -Name $arg...
这些都是 运行来自提升的 shell,所以我绝对有权 start/stop 该服务。
使用 Get-Job | Receive-Job
查看作业的输出(包括任何错误)。
或者(更具体地说)您创建的工作:
$myjob | Receive-Job
另外,仅供参考,您可以 $myjob | Wait-Job
等待作业完成,然后再继续执行代码,而不是 Start-Sleep
。您还可以:
$myjob | Wait-Job | Receive-Job
我正在尝试 start/stop 通过当权工作提供服务 shell。在我的本地机器上对此进行测试时,作业将进入完成状态,但服务不会更改其状态。有没有办法更好地了解我的工作?
代码如下:
$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
当我 运行 找到工作时,这是我看到的...
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
10 Job10 BackgroundJob Completed True localhost Get-Service -Name $arg...
这些都是 运行来自提升的 shell,所以我绝对有权 start/stop 该服务。
使用 Get-Job | Receive-Job
查看作业的输出(包括任何错误)。
或者(更具体地说)您创建的工作:
$myjob | Receive-Job
另外,仅供参考,您可以 $myjob | Wait-Job
等待作业完成,然后再继续执行代码,而不是 Start-Sleep
。您还可以:
$myjob | Wait-Job | Receive-Job