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

本文关键字:使用 参数 PowerShell 脚本 命令行 行带 V2 方法 执行 | 更新日期: 2023-09-27 18:25:08

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

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

我看到了一些关于使用PowerShell V2的不同方法的参考资料。(这里的首要答案是:在Pipeline.Invoke-shows之后在C#中捕获Powershell输出)使用V2似乎要简单得多。不要乱搞运行空间、管道或诸如此类的东西。类似这样的东西:

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

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

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

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