如何在不同的运行空间中运行函数,PowerShell

如何在不同的运行空间中运行函数,PowerShell,powershell,powershell-2.0,Powershell,Powershell 2.0,我有向事件添加注册的powershell脚本,但当事件为跳转时,每次事件为跳转时,我都会收到以下错误: “没有可用于在此线程中运行脚本的运行空间” 我使用的是PS v2,我能做什么? 你能提供一些代码吗? 谢谢您是否在第三方PowerShell主机中?这是一个错误;) 如果您在处理异步回调,问题是您正在另一个线程中运行,[Runspace]::DefaultRunspace是线程静态的@x0n不久前为异步回调编写了一个桥接器(我会看看是否能找到它) 总之,您需要按照错误建议执行操作:在Syste

我有向事件添加注册的powershell脚本,但当事件为跳转时,每次事件为跳转时,我都会收到以下错误: “没有可用于在此线程中运行脚本的运行空间” 我使用的是PS v2,我能做什么? 你能提供一些代码吗?
谢谢

您是否在第三方PowerShell主机中?这是一个错误;)

如果您在处理异步回调,问题是您正在另一个线程中运行,
[Runspace]::DefaultRunspace
是线程静态的@x0n不久前为异步回调编写了一个桥接器(我会看看是否能找到它)

总之,您需要按照错误建议执行操作:在System.Management.Automation.Runspaces.Runspace类型的DefaultRunspace属性中提供一个。但是您必须从执行代码的线程开始执行,因此异步回调有点粗糙

[Management.Automation.Runspaces.Runspace]::DefaultRunspace = [RunspaceFactory]::CreateRunspace()

听起来好像您正试图在非powershell线程上运行脚本,可能是通过异步回调。这是不受支持的方案。诀窍是将回调“桥接”到事件基础结构,其中scriptblocks将haev作为默认运行空间。看看我在这里写的:

它向您展示了如何在powershell中使用异步线程并运行脚本以响应回调

[Management.Automation.Runspaces.Runspace]::DefaultRunspace = [RunspaceFactory]::CreateRunspace()
-奥辛