2

这是一个示例:

<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 命令的任何想法?

谢谢参观!

4

1 回答 1

4

对于面临这个问题的人,看看答案是否在于更新 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 有帮助,请在这里告诉我们。

于 2016-07-01T16:24:09.520 回答