Runspace&自定义PowerShell

时间:2012-07-31 09:22:05

标签: c# powershell runspace

我正在尝试在使用PowerShell的C#中开发一些工具。 但是,我必须使用不同的PowerShell,然后在创建Runspace时默认使用这个,我的意思是这个:

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

是否可以强制Runspace使用不同(自定义)版本的powershell?

PowerShell标准版本的问题没有很多命令,例如“Open-Device”和“Close-Device”。

提前谢谢

1 个答案:

答案 0 :(得分:1)

我认为你错过了PSH运行时和主机之间的区别。主机向运行时提供服务(Write-Host,transscripts,...)。因此,ISE不会做成绩单,因为它没有实现该服务。

使用运行空间,您只需获得核心PSH运行时以及加载到其中的任何管理单元/模块。根据{{​​1}}和Open-Device的实施方式,您可能会陷入困境。如果它们是通过管理单元或模块(您的自定义主机自动加载)实现的,那么只需加载必要的组件即可。如果这些cmdlet依赖于主机自身实现的内容,那么您将需要查看运行单独的进程。

(越来越多地使用自定义主机应该被视为糟糕的形式,因为它不适用于作业,远程处理和(我怀疑)工作流程。)