以下是一个示例:
<cfset cmd="get-date -format g" />
<cfset args="-inputformat none -Command " & cmd />
<cfoutput>
<cfexecute name="powershell.exe" variable="result" errorvariable="err"
arguments="#args#" timeout="99" />
<p>Result: <cfif result neq "">#result#<cfelse>None</cfif></p>
<p>Error: <cfif err neq "">#err#<cfelse>None</cfif></p>
</cfoutput>在Windows2008 R2和ColdFusion 10上,这将准确地将PowerShell命令的输出放入结果变量中。升级到ColdFusion 11之后,该代码将执行,没有错误,但没有结果。
如果我尝试其他将保存文件或其他东西的命令,甚至没有证据表明PowerShell命令正在被执行。
我在升级的ColdFusion 11上进行了测试,并安装了ColdFusion 11 tested。在所有情况下,我都使用CF作为独立服务器。我尝试过是否使用CF 11更新/修补程序。我已经验证了CF正在运行的用户帐户是否具有执行PowerShell的权限。
感谢您对这个问题的帮助和/或证实。我遗漏了什么?如果这是一个bug,对于如何从CF 11执行一些PowerShell命令有什么想法吗?
谢谢你看一看!
发布于 2016-07-01 16:24:09
对于面临这种情况的人,看看答案是否在于更新CF使用的jvm。默认情况下,cf11附带了Java1.8.0_25(至少一开始是这样),正如我在2016年所写的那样,它已经过时了。
尝试更新到更高版本的jvm。皮特·弗雷塔格( Pete )有一段很好的视频,我在一篇关于挑战的博客文章中指出,如果你发现CF不会在尝试之后开始:
start
如果更新jvm有帮助,请在这里告诉我们。
https://stackoverflow.com/questions/30743625
复制相似问题