在从Control-M运行Powershell脚本时尝试捕获跟踪输出时,我似乎遇到了问题/错误。
输出文件显示了start-trace和stop-trace命令的页眉和页脚,但它没有显示我尝试捕获的任何其他内容。具体来说,如果我的脚本在某处发出了写主机命令,那么该信息就不会在输出(跟踪)文件中捕获。
这是一个超级简单的脚本,可以说明我的问题:
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。
任何想法都赞赏......
答案 0 :(得分: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