Да, вы можете позвонить командлеты из кода C#.
Вы будете нуждаться в этих двух пространств имен:
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)
}
это ответить на ваш вопрос?
Не должен конвейер.Commands.Add (getProcess); быть pipe.Commands.Add (cmd); - в противном случае что-то похоже на довольно хороший ответ. –
@simonatrcl Да, спасибо. Ред. – tnw
Преподавал мне что-то, во всяком случае! Приветствия - –