PowerShell: удаленное выполнение команд и запись в StdError.Как избежать сообщения об ошибке? - PullRequest
1 голос
/ 11 августа 2011

PowerShell фрагмент кода:

$session = New-PSSession -ComputerName 'ALPHA' -Credential $cred
Invoke-Command -Session $session -ScriptBlock {
  cmd /c C:\Python27\python.exe test.py 
}

Python-скрипт test.py записывает некоторые выходные данные в StdError, и я считаю, что поэтому появляется следующее сообщение об ошибке (красным цветом):

WARNING:root:warning
    + CategoryInfo          : NotSpecified: (WARNING:root:warning:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

Вопрос: как предотвратить отображение этого сообщения об ошибке?На самом деле, сообщение WARNING:root:warning должно отображаться, но NativeCommandError не должно.

Перенаправление вывода скрипта на $null не работает для меня, потому что вывод скрипта должен отображаться.

Что-то вроде cmd /c C:\Python27\python.exe test.py 2>&1 не помогает, ошибка по-прежнему появляется

Единственное решение, которое я могу себе представить - перенаправить вывод в файл, удалить эти строки ошибок, а затем распечатать содержимое отфильтрованного файла на консоль,Но это решение несколько сумасшедшее, я считаю, что должно быть другое, «нормальное» решение.

Спасибо

1 Ответ

0 голосов
/ 21 августа 2011

Мое текущее решение: измените код Python, чтобы он записывал сообщения в StdOut вместо StdErr. К счастью, в моем случае это можно сделать без изменения кода библиотек (эй, это Python, он динамический и, следовательно, чрезвычайно расширяемый ).

...