有一个通过 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 数据请求发送到临时文件,在临时位置上设置一个监视器,当数据写入完成时,使用表单代码将临时文件数据读回表单,而不是使用后台作业方法。