【问题标题】:Powershell Tracing and Control-MPowershell 跟踪和控制-M
【发布时间】:2014-02-12 17:26:11
【问题描述】:

在从 Control-M 运行 Powershell 脚本时尝试捕获跟踪输出时,我似乎遇到了问题/错误。

输出文件显示了 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。

任何想法表示赞赏...

【问题讨论】:

标签: windows powershell control-m


【解决方案1】:

Write-Host 写入控制台窗口,这不是 Control-M “监视”的内容。请改用Write-OutputWrite-Host 通常不是你想要的输出。

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

【讨论】:

  • write-output 不允许我写入同一个脚本文件。我认为成绩单的一大优势是它可以为您捕获所有输出,正如我在 Control-M 之外运行我的脚本时所证明的那样。我没有使用 write-host 来创建可编程的可用输出;它只是为需要监视脚本(调试等)的任何人提供的信息。
  • 感谢alroc ...参考您上面的链接,我尝试了write-verbose技术。但不幸的是,我遇到了同样的问题。 Control-M 似乎对 Powershell 有某种影响,因为日志记录和跟踪本质上是不起作用的。
  • Start-Transcript 在交互模式之外不能很好地工作,我认为它不是故意的。来自 cmdlet 自己的描述:“脚本包括用户键入的所有命令以及出现在控制台上的所有输出。”如果完整的日志对于此过程至关重要,请编写自己的日志记录,而不是依赖不适合该任务的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-24
  • 1970-01-01
相关资源
最近更新 更多