PowerShell:命令在启动作业块内停止工作



我正在尝试编写一个脚本,该脚本将首先显示一个消息框,然后如果用户未单击消息框的"确定",则脚本需要在一定时间后继续。消息框代码本身工作正常,然后代码在启动作业块中停止工作。

$job = Start-Job {
    $message = [System.Windows.Forms.MessageBox]::Show("Message body." , "Message title." , 0)
    if ($message -eq "OK" ) {Write-Host "User clicked OK."} 
}
$timeout = Wait-Job $job -Timeout 30
Stop-Job $job 
Receive-Job $job
Remove-Job $job

错误信息:

找不到类型 [System.Windows.Forms.MessageBox]:确保已加载包含此类型的程序集。 + 类别信息 : 无效操作: (System.Windows.Forms.MessageBox:String) [], 运行时异常 + 完全限定的错误 ID:类型未找到

在脚本块中,在开头插入Add-Type -AssemblyName System.Windows.Forms

作业在不同的 PowerShell 进程中运行,因此即使已在控制台中导入了 WinForms 程序集,也不会在作业启动的新 PowerShell 会话中导入该程序集。

最新更新