Powershell Tracing and Control-M

Кажется, я столкнулся с проблемой / ошибкой при попытке получить результаты трассировки при запуске скрипта Powershell из Control-M.

Выходной файл показывает верхние и нижние колонтитулы команд start-trace и stop-trace, но он не показывает ничего другого, что я пытаюсь перехватить. В частности, если мой скрипт где-то выполняет команду write-host, то эта информация не записывается в выходной файл (трассировку).

Вот очень простой скрипт, который иллюстрирует мою проблему:

start-transcript -path "C:\Powershell\transcript.log"
write-host "test message"
#do stuff...
stop-transcript

Вот пример моего текущего вывода при запуске скрипта через Control-M:

**********************
Windows PowerShell Transcript Start
Start time: 20140212002005
Username  : mydomain\SYSTEM 
Machine   : myserver (Microsoft Windows NT 6.1.7601 Service Pack 1) 
**********************
**********************
Windows PowerShell Transcript End
End time: 20140212002008
**********************

Обратите внимание, что мое тестовое сообщение не отображается! Это происходит только тогда, когда я запускаю скрипт через Control-M. Когда я запускаю свой сценарий вручную, мое "тестовое сообщение" отображается в выводе стенограммы.

Моим первым подозрением были разрешения на доступ к файлам, но они мне нравятся. Агент Control-M использует доступ на системном уровне, поэтому у него должны быть все необходимые разрешения. Если бы это была проблема с правами доступа к файлам, я не верю, что я бы даже получил сообщения верхнего / нижнего колонтитула.

Я на PS v2.0. Мой сервер работает под управлением 2008r2.

Любые мысли оценили...

1 ответ

Write-Host пишет в консольное окно, которое не отслеживается Control-M. Пытаться Write-Output вместо. Write-Host обычно не то, что вы хотите для производства продукции.

См. http://windowsitpro.com/blog/what-do-not-do-powershell-part-1 и http://powershell.com/cs/blogs/donjones/archive/2012/04/06/2012-scripting-games-commentary-stop-using-write-host.aspx

Другие вопросы по тегам