9

我正在编写一个 C# 应用程序,它需要使用命令行参数执行 Powershell 脚本并检索输出(也就是我希望在 PowerShell ISE 的输出窗口中看到的内容 - 包括异常信息)

我发现了许多代码示例,说明如何使用 PowerShell V1 对象完成此任务。这些示例创建运行空间、管道等(例如Execute PowerShell Script from C# with Commandline Arguments

我已经看到很少有关于使用 PowerShell V2 执行此操作的不同方法的引用。(这里的最佳答案:Capturing Powershell output in C# after Pipeline.Invoke throws)使用 V2 似乎简单得多。不要乱用运行空间、管道或任何其他东西。像这样的东西:

PowerShell powerShell = PowerShell.Create();

powerShell.AddScript(script);
var results = powerShell.Invoke();

有没有使用 PowerShell V2 对象从 C# 代码中执行脚本的好的工作示例?是否有任何已知的关于 PowerShell V2(甚至 V3)对象的良好文档以及如何使用它们的最佳实践?微软的官方文档应该有吗?一本好书或网站,逐个分解 System.Management.Automation 组件?

4

1 回答 1

10

在这里回答我自己的问题。看起来正确的方法是让我的应用程序充当 PowerShell 主机

https://msdn.microsoft.com/en-us/library/ee706563(v=vs.85).aspx

此处定义了 PowerShell V2 对象的使用:http: //msdn.microsoft.com/en-us/library/windows/desktop/system.management.automation.powershell (v=vs.85).aspx

于 2013-07-26T14:06:44.607 回答