Stack Overflow is a community of 4.7 million programmers, just like you, helping each other.

Join them; it only takes a minute:

Sign up
Join the Stack Overflow community to:
  1. Ask programming questions
  2. Answer and help your peers
  3. Get recognized for your expertise

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?

share|improve this question
up vote 8 down vote accepted

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

http://msdn.microsoft.com/en-us/library/windows/desktop/ee706610(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

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.