захват стандартного вывода при выполнении Powershell C # - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь выполнить простую команду powershell в c # и вывести результат.Powershell v5.1 на сервере 2016

PowerShell ps = PowerShell.Create();
ps.AddCommand("Get-DhcpServerInDC");
Collection<PSObject> results = ps.Invoke();
StringBuilder sb = new StringBuilder();
foreach (PSObject obj in results) {
    sb.AppendLine(obj.ToString()); }
txt_adt_updateTextbox.Text = sb.ToString();

Но вместо того, чтобы получить список DHCP-серверов и их IP-адресов, я получаю следующее.

DhcpServerInDC DhcpServerInDC DhcpServerInDC DhcpServerInDC DhcpSpInverDhcpServerInDC DhcpServerInDC DhcpServerInDC DhcpServerInDC DhcpServerInDC DhcpServerInDC DhcpServerInDC

1 Ответ

0 голосов
/ 18 декабря 2018

Красиво отформатированный список / таблица, которую вы обычно видите в PowerShell, отображается хостом (например, консоль, ISE и т. Д.).В этом случае вы являетесь хостом, поэтому вам необходимо выполнить форматирование.

Из документации видно, что вы должны получить коллекцию объектов WMI.Используйте технику, показанную в одном из моих предыдущих ответов, чтобы получить нужные данные:

Работа с CimObjects с PowerShell внутри C #

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