我正在编写一个C#应用程序,需要使用命令行参数执行Powershell脚本并检索输出(也就是我期望在PowerShell ISE的输出窗口中看到的内容 - 包括异常信息)
我找到了许多使用PowerShell V1对象完成此任务的代码示例。这些示例创建了运行空间,管道等(ex Execute PowerShell Script from C# with Commandline Arguments)
我已经看到了一些使用PowerShell V2以不同方式执行此操作的建议。 (这里的最佳答案:Capturing Powershell output in C# after Pipeline.Invoke throws)使用V2似乎更多更简单。没有弄乱运行空间,piplines或其中任何一个。像这样:
PowerShell powerShell = PowerShell.Create();
powerShell.AddScript(script);
var results = powerShell.Invoke();
使用PowerShell V2对象从C#代码中执行脚本是否有任何好的工作示例?是否有任何已知的PowerShell V2(甚至V3)对象的良好文档以及如何使用它们的最佳实践?来自微软的官方文档应该是什么?一本好的书或网站,一分为二地分解System.Management.Automation程序集?
答案 0 :(得分: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