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