Как программно получить предупреждение от командлета PowerShell в v1.0? - PullRequest
3 голосов
/ 04 марта 2010

Я использую PowerShell v1.0 (это требование, которое я не могу использовать 2.0), и у меня возникают проблемы при попытке программно перехватить вывод командлета в поток предупреждений.

В 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, и существующие классы, по-видимому, не предоставляют доступ к потоку предупреждений. Кроме того, информация о потоке предупреждений не помещается в стандартный вывод командлета.

Спасибо! Sam

1 Ответ

4 голосов
/ 04 марта 2010

Вы всегда можете реализовать интерфейс хоста ( пользовательский хост ), и тогда предупреждающие сообщения будут отправлены непосредственно вам. Это не чип-шот, а единственное, что я могу придумать для V1.0.

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