I'm creating a PowerShell cmdlets from Visual Studio and I can't find out how to call cmdlets from within my C# file, or if this is even possible? I have no trouble running my cmdlets one by one, but I want to set up a cmdlet to run multiple cmdlets in a sequel.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Yes, you can call cmdlets from your C# code.
You'll need these two namespaces:
using System.Management.Automation;
using System.Management.Automation.Runspaces;
Open a runspace:
Runspace runSpace = RunspaceFactory.CreateRunspace();
runSpace.Open();
Create a pipeline:
Pipeline pipeline = runSpace.CreatePipeline();
Create a command:
Command cmd= new Command("APowerShellCommand");
You can add parameters:
cmd.Parameters.Add("Property", "value");
Add it to the pipeline:
pipeline.Commands.Add(cmd);
Run the command(s):
Collection output = pipeline.Invoke();
foreach (PSObject psObject in output)
{
....do stuff with psObject (output to console, etc)
}
Does this answer your question?