如何在powershell脚本超时后停止powershell块

MUY*_*ium 0 powershell wmi jobs

我想调用命令

$myArray = Get-Wmiobject -Class Win32-printer
Run Code Online (Sandbox Code Playgroud)

但是,在极少数情况下,此命令有时永远不会失败也不会成功,返回可用打印机列表.

我想仅在调用时间少于几秒时才分配$ myArray,假设为5.否则,我想显示一个对话框,告知此时打印机不可用.

如何使用超时启动powershell块?

Joe*_*oey 9

你可以使用一份工作:

$job = Start-Job { Get-Wmiobject -Class Win32-printer }
$job | Wait-Job -Timeout 5
if ($job.State -eq 'Running') {
  # Job is still running, cancel it
  $job.StopJob()
} else {
  # Job completed normally, get the results
  $myArray = $job | Receive-Job
}
Run Code Online (Sandbox Code Playgroud)