[英]How to run function in different runspace, PowerShell
我有為事件添加注冊的Powershell腳本,但是當事件跳轉時,每次事件跳轉時我都會收到以下錯誤:“沒有可用於在該線程中運行腳本的運行空間”我正在使用PS v2,可以我做? 你能提供一些代碼嗎? 謝謝
您是否在第三方PowerShell主機中? 那是個錯誤;)
如果您正在使用Async回調,那么問題是您正在其他線程中運行,並且[Runspace]::DefaultRunspace
是線程靜態的。 @ x0n不久前為異步回調寫了一個橋(我看看是否能找到它)。
最重要的是,您需要執行錯誤所建議的操作:在System.Management.Automation.Runspaces.Runspace類型的DefaultRunspace屬性中提供一個。 但是您必須在要執行代碼的線程中執行此操作,因此異步回調的操作有點麻煩。
[Management.Automation.Runspaces.Runspace]::DefaultRunspace = [RunspaceFactory]::CreateRunspace()
聽起來您正在嘗試通過非異步回調在非Powershell線程上運行腳本。 這不是受支持的方案。 訣竅是“橋接”到回調基礎設施,其中腳本塊具有默認運行空間。 看看我在這里寫的內容:
它向您展示了如何在Powershell中使用異步線程並如何運行腳本以響應回調。
-Oisin
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.