Используя хост PowerShell из С#, как я могу получить результат?
Наличие следующего консольного приложения 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
но он пустой.
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);
}
}