使用C#使用V2方法使用命令行参数执行PowerShell脚本

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

我找到了许多使用PowerShell V1对象完成此任务的代码示例。 这些示例创建了运行空间,管道等(例如, 使用命令行参数从C#执行PowerShell脚本 )

我已经看到一些使用PowerShell V2的不同方法的一些参考。 (这里的最佳答案: 在Pipeline.Invoke抛出之后在C#中捕获Powershell输出 )使用V2似乎简单。 不要乱用运行空间,piplines或其中任何一个。 像这样的东西:

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

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

在这里回答我自己的问题。 看起来正确的方法是我的应用程序作为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