c# - 运行空间和自定义 powershell

标签 c# powershell runspace

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

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

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

问题是标准版的powershell命令不多,比如“Open-Device”和“Close-Device”。

提前致谢

最佳答案

我认为您忽略了 PSH 运行时和主机之间的区别。宿主向运行时提供服务(Write-Host、转录、...)。因此,ISE 不做成绩单,因为它没有实现该服务。

使用运行空间,您只需获得核心 PSH 运行时以及您加载到其中的任何管理单元/模块。根据 Open-DeviceClose-Device 的实现方式,您可能会遇到困难。如果它们由管理单元或模块(您的自定义主机自动加载)实现,则只需加载必要的组件。如果这些 cmdlet 依赖于主机本身实现的某些东西,那么您将需要考虑运行一个单独的进程。

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

关于c# - 运行空间和自定义 powershell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11736905/

相关文章:

c# - C# 中 Pipeline 和 PowerShell 类的区别

c# - 获取 datacontext.ExecuteQuery 返回的动态对象的属性

c# - COM 方法、Char 类型和 CharSet

c# - 为什么 MonoTouch 运行时会因 UIAlertView 而崩溃?

powershell - 从 “personal information”, '.doc'和 '.docx'文档中删除隐藏数据和 '.pptx'

email - 使用Powershell发送延迟消息传递并更改默认帐户

c# - 具有同步全双工通信的 TCPServer

powershell - 如何使用 PowerShell 从文件名中删除表情符号?

c# - C# 应用程序调用的 Powershell 脚本

c# - Powershell 线程与 C# 线程