执行 SSH 命令时 Powershell 表单冻结

执行 SSH 命令时 Powershell 表单冻结

有一个通过 Powershell 表单运行的简单脚本

根据请求,它使用命令从 Linux 服务器获取信息plink,然后将其作为输出打印在表单中。问题是在获取信息时表单会冻结。

我尝试过get-job,结果相同

我原来的命令:

plink -batch -ssh $User@$srv -pw $pass -m $executeCommandFile | fl | out-string

添加的get-job逻辑:

$myjob = start-job -scriptblock {plink -batch -ssh $User@$srv -pw $pass -m $executeCommandFile | fl | out-string}
While ( ($myjob | Select-Object -ExpandProperty State) -eq "Running") {
                    sleep 1
                }
$results = receive-job -job $myjob

答案1

分开这些步骤。尝试将 plink 数据请求发送到临时文件,在临时位置上设置一个监视器,当数据写入完成时,使用表单代码将临时文件数据读回表单,而不是使用后台作业方法。

相关内容