如何在Visual Studio中从C#调用PowerShell cmdlet

如何在Visual Studio中从C#调用PowerShell cmdlet,c#,powershell,visual-studio-2012,cmdlets,C#,Powershell,Visual Studio 2012,Cmdlets,我正在从Visual Studio创建PowerShell cmdlet,但我无法找到如何从我的C#文件中调用cmdlet,或者这是否可能?我可以一个接一个地运行cmdlet,但我想设置一个cmdlet,以便在续集中运行多个cmdlet 是的,您可以从C#代码调用cmdlet 您将需要以下两个名称空间: using System.Management.Automation; using System.Management.Automation.Runspaces; 打开运行空间: Runspa

我正在从Visual Studio创建PowerShell cmdlet,但我无法找到如何从我的C#文件中调用cmdlet,或者这是否可能?我可以一个接一个地运行cmdlet,但我想设置一个cmdlet,以便在续集中运行多个cmdlet

是的,您可以从C#代码调用cmdlet

您将需要以下两个名称空间:

using System.Management.Automation;
using System.Management.Automation.Runspaces;
打开运行空间:

Runspace runSpace = RunspaceFactory.CreateRunspace();
runSpace.Open();
创建管道:

Pipeline pipeline = runSpace.CreatePipeline();
pipeline.Commands.Add(cmd);
创建一个命令:

Command cmd= new Command("APowerShellCommand");
您可以添加参数:

cmd.Parameters.Add("Property", "value");
将其添加到管道中:

Pipeline pipeline = runSpace.CreatePipeline();
pipeline.Commands.Add(cmd);
运行以下命令:


这是否回答了您的问题?

不应该pipeline.Commands.Add(getProcess);be pipeline.Commands.Add(cmd);-否则这看起来是个很好的答案。不管怎样,我学到了一些东西!干杯-尽管它的年龄,这仍然是一个非常有用的答案。对于使用dotnet core和CLI的用户,请从
dotnet add package system.management.automation
开始获取这些名称空间。很抱歉,这不是core软件包,对于core,您需要
microsoft.powershell.sdk
另请参阅。