Как динамически создать сценарий powershell из c# на основе входных параметров без физического файла сценария на компьютере - PullRequest
0 голосов
/ 18 апреля 2020

Я знаю, что мы можем запустить физический сценарий powershell из c#, но как создать сам файл сценария powershell динамически на основе входных параметров.

Пожалуйста, предложите.

1 Ответ

0 голосов
/ 18 апреля 2020

вы можете выполнять скрипт / команды powershell непосредственно из вашего проекта c#. вам нужно добавить ссылку на system.managment.automation dll в ссылках проекта.

пример: функция, которая будет принимать скрипт в виде строки, выполнять его и затем возвращать результат:

private string RunScript(string script)
{
    Runspace runspace = RunspaceFactory.CreateRunspace();
    runspace.Open();
    Pipeline pipline = runspace.CreatePipeline();
    pipline.Commands.AddScript(script);
    pipline.Commands.Add("Out-String");
    Collection<PSObject> results = pipline.Invoke();
    runspace.Close();
    StringBuilder stringBuilder = new StringBuilder();
    foreach(PSObject pSObject in results)
    {
        stringBuilder.AppendLine(pSObject.ToString());
    }
    return stringBuilder.ToString();
}

вызов функции может быть таким:

Console.WriteLine(RunScript("Your Powershell Script"));

Вы можете ознакомиться с полными примерами кода на github - PowershellCommand-CSharp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...