Using C# to execute PowerShell script with command line args using V2 methods

心已入冬 提交于 2019-11-27 06:01:38

问题


I am writing an C# application which will need to execute Powershell scripts with command line arguments and retrieve the output (aka what I would expect to see in the output window of PowerShell ISE - including exception information)

I have found numerous code examples of how to accomplish this task using PowerShell V1 objects. These examples create runspaces, pipelines, etc. (ex Execute PowerShell Script from C# with Commandline Arguments)

I have seen a few scant references to a different way to do this using PowerShell V2. (the top answer here: Capturing Powershell output in C# after Pipeline.Invoke throws) Using V2 seems much simpler. No messing around with runspaces, piplines or any of that. Something like this:

PowerShell powerShell = PowerShell.Create();

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

Are there any good working examples out there of using PowerShell V2 objects to execute scripts from within C# code? Is there any known good documentation of the PowerShell V2 (or even V3) objects and best practices on how to use them? Offical docs from Microsoft like there ought to be? A good book or site which breaks down the System.Management.Automation assembly piece by piece?


回答1:


Answering my own question here. It looks like the right approach would be for my application to function as a PowerShell Host

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

Use of PowerShell V2 objects is defined here: http://msdn.microsoft.com/en-us/library/windows/desktop/system.management.automation.powershell(v=vs.85).aspx



来源:https://stackoverflow.com/questions/17867636/using-c-sharp-to-execute-powershell-script-with-command-line-args-using-v2-metho

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!