我正在使用 PowerShell v1.0(这是我不能使用 2.0 的要求)并且在尝试以编程方式捕获警告流中的 cmdlet 输出时遇到了麻烦。
在 Powershell 2.0 中很容易:
var powerShell = PowerShell.Create();
powerShell.AddCommand(someCommand);
powerShell.Invoke();
foreach (var warning in powerShell.Streams.Warning) { ... }
但是,PowerShell 版本 1 中不存在 System.Management.Automation.PowerShell 类,并且确实存在的类似乎无法访问警告流。此外,警告流信息不在 cmdlet 的标准输出中。
谢谢!山姆