Имея следующее консольное приложение NET 5:

static void Main(string[] args)
{
    using var ps = PowerShell.Create();
    // ps.AddCommand("Get-Service");
    ps.AddStatement().AddCommand("Get-Service");
    ps.Invoke();
}

Кажется, что вызовы выполняются без ошибок, но куда идет вывод? Я пробовал как AddCommand, так и AddStatement, а также исследовал переменную ps в отладчике, никаких признаков вывода. Я обнаружил ps.Streams.Information, но он пуст.

0
g.pickardou 28 Фев 2021 в 11:15

1 ответ

Лучший ответ

Как подробно описано в документации для PowerShell.Invoke, он возвращает коллекцию, содержащую все результаты, полученные в результате операции PowerShell.

Таким образом, вы можете написать

static void Main(string[] args)
{
    using var ps = PowerShell.Create();
    ps.AddStatement().AddCommand("Get-Service");
    var results = ps.Invoke();

    foreach (var result in results)
    {
        Console.WriteLine(result);
    }
}
1
Aluan Haddad 28 Фев 2021 в 08:29