Loading user information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading user information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

How to Embed PowerShell Within a C# Application

4 minutes, 18 seconds


Right click “Save as…”

Join James Brundage, Tester from the Windows PowerShell team, and Bruce Kyle for a quick introduction to how embed PowerShell within your C# application.   

See how you can easily reference the PowerShell assembly and start embedding PowerShell cmdlets inside of a C# application with PowerShell V2.


Sample Code:

using System.Management.Automation;
using System.Management.Automation.Runspaces;

/* Calls the Get-Process PowerShell command and returns the output as a string */

foreach (string str in PowerShell.Create().




NOTE: You'll need to add a reference to the version of PowerShell you have installed in your GAC to the Visual Studio project file. To do so, you'll open the project file as a text file and add the following line into the <ItemGroup> section:

<Reference Include="System.Management.Automation" /> 

For more news, tips, and links to developer training, see the US ISV Community blog.


Follow the discussion

  • Oops, something didn't work.

    Getting subscription
    Subscribe to this conversation
  • PerfectPhasePerfectPhase "This is not war, this is pest control!" - Dalek to Cyberman

    One thing I'd be really intreasted in is any guidance on how to make my apps manageble by powershell, how to handle communication from the cmdlet to the app etc.  At the moment I have a WCF service I call from the powershell command but am intreasted on how others do it.





  • Why didn't you guys use a tripod? The tiny screen in the video is very hard to read and the camera shake makes it even harder. Fortunatelly, the code was posted to the right of the video (and the subtitles helped, too), because it was nearly impossible to make it out on the screen. In the end, I think this entire exercise would have been better as a post to a blog.

  • How to handle the scenario of calling Exchange Server 2010 Commandlets and powershell commandlets in C# ??


    Exchange Commandlets require remote runspace to be created for them to run. By doing so, we will not able to run powershell commandlets like "Where-Object" in the same runspace.


    Creating a local runspace would enable us to execute powershell commandlets and not Exchange 2010 commandlets.


    We can maintain separate runspaces, one local runspace to run powershell commandlets and one remote runspace to run Exchange 2010 COmmandlets.


    But, How to execute a pipeline of Exchange 2010 commandlets and powershell commandlets like this: "Get-ExchangeServer | Select-Object Name" ??

Remove this comment

Remove this thread


Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.