Иногда надо запретить вывод сообщений об ошибках в скриптах powershell.
Настройка параметров вывода сообщений производится с помощью переменных ErrorAction и WarningAction, которым можно задать значения (SilentlyContinue, Continue, Inquire и Stop). В многих случаях добавление к параметрам коммандлета -ErrorAction SilentlyContinue позволяет избавиться от надоедливых сообщений. Однако, что же делать, когда это не помогает и сообщения продолжают появляться?
Такая ситуация возможна с коммандлетами, специфичными для приложений. Например - Microsoft Exchange.
Я столкнулся с нескрываемыми ошибками при выполнении Set-Mailbox. Довольно длительное гугление привело меня сюда: https://stackoverflow.com/questions/26137379/suppress-powershell-output-messages
А там приведен рецепт - перенаправление вывода таким вот образом:
*>&1 | out-null
В результате нежелательные сообщения (да все сообщения в принципе) отправляются в $null.
Discussion