我有一个PowerShell脚本,最终通过invoke-expression
命令传递的参数堆栈成一个批处理文件。PowerShell配置强制批处理文件在PowerShell窗口中运行?
然而,一台服务器,当PowerShell脚本执行该批处理文件上,该批处理文件在新窗口中打开,但在其他服务器上,该批处理文件PowerShell窗口中执行。
这是什么意思,我有一个睡眠间隔,一旦批处理文件开始在新窗口中执行时就开始启动,并因此搞砸了我的计时,与其他睡眠间隔时间不同的服务器不同开始,直到后的批处理文件执行完毕。
所以我的问题是...有谁知道为什么行为是两个服务器之间的不同,以及如何让该批处理文件中的PowerShell窗口中执行?我想这是一个配置的事情,但实际上并不能发现什么,告诉我如何让它做我想做的事情.....
谢谢!
- 编辑 -
我目前只是管道线直通这样的: E:\Software\ibm\WebSphere\AppServer\bin\wsadmin -lang jython -username $($username) -password $($password) -f "F:\Custom\dumpAllThreads.py" $($servers)
以前,它
$invokeString = 'E:\Software\ibm\WebSphere\AppServer\bin\wsadmin -lang jython -username $($username) -password $($password) -f "F:\Custom\dumpAllThreads.py" $($servers)'
$output = invoke-expression $invokeString
两者都有相同的行为。
您是否在两个系统上使用相同版本的PowerShell? – rrirower 2014-12-08 00:00:57
是的,我是。 :)使用$ PSVersionTable.psversion,我在两个盒子上得到2,0,-1,-1。 – 2014-12-08 00:19:41
尝试使用'start-process'代替,并使用'-nonewwindow'标志 – Paul 2014-12-08 00:21:14