How to Embed PowerShell Within a C# Application
- Posted: Apr 06, 2010 at 8:21 PM
- 16,996 Views
- 3 Comments
Loading User Information from Channel 9
Something went wrong getting user information from Channel 9
Loading User Information from MSDN
Something went wrong getting user information from MSDN
Loading Visual Studio Achievements
Something went wrong getting the Visual Studio Achievements
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().
AddScript("Get-Process").
AddCommand("Out-String").Invoke<string>())
{
Console.WriteLine(str);
}
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.
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.
Follow the Discussion
Oops, something didn't work.
What does this mean?
Following an item on Channel 9 allows you to watch for new content and comments that you are interested in. You need to be signed in to Channel 9 to use this feature.What does this mean?
Following an item on Channel 9 allows you to watch for new content and comments that you are interested in and view them all on your notifications page.sign up for email notifications?
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.
Cheers,
Stephen.
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
close