如何在Visual Studio中从C#调用PowerShell cmdlet
我正在从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();
创建一个命令:
Command cmd= new Command("APowerShellCommand");
您可以添加参数:
cmd.Parameters.Add("Property", "value");
将其添加到管道:
pipeline.Commands.Add(cmd);
运行命令:
Collection output = pipeline.Invoke(); foreach (PSObject psObject in output) { ....do stuff with psObject (output to console, etc) }
这回答了你的问题了吗?