2012-07-31 59 views
2

我想在C#中使用PowerShell開發一些工具。 不過,我必須使用不同的PowerShell那麼這其中之一是創建運行空間使用時,默認情況下,我的意思是這一個:運行空間和自定義powershell

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe 

是否有可能迫使運行空間使用PowerShell的不同(定製)版本?

與標準版本的PowerShell的問題沒有很多命令,如「開放設備」和「關閉設備」。

預先感謝您

回答

1

我認爲你缺少的PSH運行和主機之間的差異。主機向運行時提供服務(Write-Host,transscript,...)。因此,ISE不會執行轉錄,因爲它不會執行該服務。

通過運行空間,您只需獲得核心PSH運行時以及加載到其中的任何管理單元/模塊。根據如何實現Open-DeviceClose-Device,您可能會卡住。如果它們通過管理單元或模塊(您的自定義主機自動加載)實現,那麼只需加載必要的組件即可。如果這些cmdlet取決於主機本身實現的東西,那麼您需要查看運行單獨的進程。

(越來越不得不使用自定義主機應該被視爲糟糕的形式,因爲它不會與作業,遠程處理和(我懷疑)工作流程一起工作。)