Подтвердить что ты не робот

PowerShell: отправить консольный вывод в файл без оглушения этого консольного вывода

У меня много PowerShell script. Один из основных, который вызывает другие, детские. Эти сценарии PS, в свою очередь, вызывают окна CMD-скриптов, bash скрипты и консольные приложения. Все эти сценарии и приложения пишут сообщения на консоль. Например, сценарии PowerShell используют Write-Host scriptlet для этой цели.

Вопрос: Как я могу легко перенаправить (отправить) весь этот вывод консоли в какой-то файл, а не оглушить (отменить) этот вывод консоли? Я хочу видеть, что происходит с выхода консоли, а также иметь историю сообщений в файле журнала.

Спасибо.

4b9b3361

Ответ 1

Вы можете попробовать Start-Transcript и Stop-Transcript. Он имеет несколько ограничений, например, не захватывает собственный вывод exe. Это также глобально для сеанса PowerShell.

Ответ 2

Вы можете использовать эквивалент tee для PowerShell: Tee-Object

PS: serverfault.com и/или superuser.com более подходят для такого вопроса.

Ответ 3

Я нашел script для захвата вывода консоли: http://gallery.technet.microsoft.com/scriptcenter/e8fbffde-7d95-42d9-81de-5eb3d9c089e0. script возвращает HTML для сохранения цветов.

Единственный большой недостаток - вы должны называть его в конце вашего script, чтобы захватить весь вывод консоли, который он сделал.

Ответ 4

Вам, вероятно, потребуется написать собственный хост для этого. Это не очень сложно сделать, но для этого требуется некоторый управляемый код.