执行Powershell C#时捕获标准输出

时间:2018-12-17 05:49:02

标签: c# powershell

我试图在c#中执行一个简单的powershell命令并输出结果。 Server 2016上的Powershell v5.1

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   DhcpServerInDC DhcpServerInDC DhcpServerInDC DhcpServerInDC   DhcpServerInDC DhcpServerInDC DhcpServerInDC DhcpServerInDC   DhcpServerInDC

1 个答案:

答案 0 :(得分:0)

主机通常会在PowerShell中显示格式良好的列表/表,例如主机,控制台等。在这种情况下,是主机,因此您需要进行格式化。

从文档看,您似乎应该找回WMI对象的集合。使用我以前的答案之一中显示的技术来获取所需的数据:

Dealing with CimObjects with PowerShell inside C#