2010-03-04 63 views
3

我正在使用PowerShell v1.0(這是我不能使用2.0的要求),並且無法以編程方式捕獲警告流中的cmdlet輸出。如何在v1.0中以編程方式從PowerShell cmdlet獲取警告輸出?

在PowerShell 2.0中很容易:

var powerShell = PowerShell.Create(); 
powerShell.AddCommand(someCommand); 
powerShell.Invoke(); 

foreach (var warning in powerShell.Streams.Warning) { ... } 

然而,System.Management.Automation.PowerShell類不使用PowerShell版本1存在,似乎是確實存在的類不給接入到警告流。另外,警告流信息不在該cmdlet的標準輸出中。

謝謝! 山姆

回答

4

您可以始終實現主機接口(custom host),然後警告消息將直接發送給您。這不是一個簡單的問題,但是我能想到V1.0的唯一一件事。

+0

非常感謝 - 這是一個很好的解決方案。使用自定義主機和用戶界面時,我可以在PSHostUserInterface上調用WriteWarningLine(消息)時記錄警告。 – Sam

相關問題