小编krs*_*krs的帖子

从 C# 以编程方式调用 CmdLet 时,如何捕获 Powershell CmdLet 的对象输出

背景

  • 带有 SDK 的 PowerShell 3
  • 带有框架 4.5 的 C#

执行

我已经用PSHostUserInterface实现了我自己的PSHost alogn。在PSHostUserInterface 中,我覆盖了所有Write...方法并将其收集到一个用于输出的变量。

问题

在我的应用程序中,我调用了使用WriteObject作为输出的Cmdlets。在PSHostUserInterface.Write...方法中,我得到了除这些WriteObject输出之外的所有内容。例如,我在常规 PowerShell 中看到了这一点:

这是命令的示例字符串输出

这里我们有来自 Cmdlet.WriteObject 函数的对象

这是命令的另一个字符串输出

这是我在我的应用程序中的自定义 PSHost 中得到的:

这是命令的示例字符串输出

这是命令的另一个字符串输出

如何在 C# 中获取 Cmdlet 的所有输出?

非常感谢

c# powershell pshost

5
推荐指数
1
解决办法
2061
查看次数

标签 统计

c# ×1

powershell ×1

pshost ×1