Powershell作业“;“已完成”;但是没有完成它';的任务
我正在尝试通过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
$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
谢谢我发现我的问题是“获取服务:无法在计算机上打开服务控制管理器。此操作可能需要其他权限。”。奇怪的是,作业仍然会由于这样的错误而进入已完成状态。但是谢谢你的回答!