以下是一个示例:
<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>
在带有ColdFusion 10的Windows 2008 R2上,这将准确地将PowerShell命令的输出放入结果变量中。升级到ColdFusion 11后,此代码将执行,没有错误,但没有结果。
如果我尝试一些其他命令来保存文件或其他东西,则没有证据表明PowerShell命令甚至正在执行。
我已经针对升级的ColdFusion 11进行了测试,并安装了ColdFusion 11。在所有情况下,我都使用CF作为独立服务器。我已尝试使用或不使用CF 11更新/修补程序。我已经验证运行CF的用户帐户是否有权执行PowerShell。
感谢您对此问题的帮助和/或佐证。我错过了什么?如果这个 是一个错误,那么关于如何从CF 11执行某些PowerShell命令的任何想法都会向前推进?
谢谢你看看!
答案 0 :(得分:3)
对于那些面临这种情况的人,看看答案是否在于更新CF使用的jvm。默认情况下,cf11来自(至少最初)Java 1.8.0_25,正如我在2016年写的那样。
尝试更新到以后的jvm版本。 Pete Freitag有一个很好的视频,如果你发现CF在尝试之后没有开始,我会在博客文章中指出它处理挑战:
http://www.carehart.org/blog/client/index.cfm/2014/12/11/help_I_updated_CFs_JVM_and_it_wont_start
如果更新jvm有帮助,请告诉我们。