【问题标题】:Issues executing vbscript through PHP on WAMP stack在 WAMP 堆栈上通过 PHP 执行 vbscript 的问题
【发布时间】:2014-02-12 00:03:32
【问题描述】:

我在 Windows Server 2012 上通过 Apache (WAMP) 执行 VBScript 时遇到问题。我正在尝试将 Docx 转换为 PDF,并且脚本从命令行完美运行,但在通过 PHP 运行时失败。我不会发布 vbscript,而是提供一个链接:http://bit.ly/1gngYAn

当通过 PHP 如下执行时,WINWORD.exe 启动,VBScript 也启动,它挂在那里,没有任何反应。没有生成 PDF(而且我从未在目录中看到 ~temporary.docx 隐藏文件弹出)。

我几乎尝试了 exec、system、passthru 和 COM ('WScript.Shell') 的每一次迭代,结果都一样。

为了避免“转义”问题,我还尝试通过 .bat 文件执行脚本,因此不需要传递任何参数,结果是一样的。

这是我当前的 php 代码(convert.vbs 是上面链接中的代码):

$obj = new COM ( 'WScript.Shell' ); 

$obj->Run ( 'cmd /C wscript.exe //B C:\Users\Administrator\Desktop\convert.vbs c:\wamp\www\fileconv\temp_store\52fa8272bf84f.docx', 1, false );
//I have tried different "window styles" too, and it doesn't make a difference

我还尝试修改apache服务用户以管理员身份运行(这不是生产服务器),并启用“允许服务与桌面交互”,结果相同。

我还确保每个人(读取、写入、执行等)都可以“完全控制”目录。

如果我从命令行运行或使用“.bat”文件运行,它会完美运行。

由于它挂起(脚本和单词,而不是 apache),我查看了控制面板中的事件查看器,但没有相关的事件。

我的问题首先是,为什么会发生这种情况,其次,如果无法回答第一个问题,是否有办法可以更深入地了解执行过程时发生的情况,以进一步排除故障它?到目前为止,我没有要查看或输出的数据来帮助我进行故障排除。

请随时询问任何详细信息。我已经尝试了很多次迭代来尝试让它工作,搜索了高低,似乎无法找到任何答案。

感谢您的帮助,

路易

【问题讨论】:

    标签: php vbscript wamp


    【解决方案1】:

    我花了几天时间,但这是我找到的解决方案:

    我使用 PsExec - http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

    需要以下标志:-h -i -accepteula -u -p

    (我尝试不使用 -h、-accepteula 和 -i,但没有骰子。这是在 WAMP 下的 Windows Server 2012 上运行的)

    这是一个例子:

    exec('c:\psexec\PsExec -h -i -accepteula -u Administrator -p '.$password.' C:\Windows\System32\CScript.exe //Nologo //B c:\wamp\www\fileconv\convert.vbs '.$filename)

    现在它可以按预期正确执行了。

    我希望这对处于相同情况的人有所帮助!

    PS 我在问题中使用的WScript.Shell 执行方法与exec() 一样有效,除了exec() 等到进程退出。

    【讨论】:

      【解决方案2】:

      你应该使用 exec() 函数 这是网址http://php.net/manual/fr/function.exec.php

      【讨论】:

      • 请再读一遍这个问题——“我几乎尝试了 exec、system、passthru 和 COM ('WScript.Shell') 的每一次迭代,结果都一样”。我已经尝试过 exec() 并且通过 PHP 执行的方式似乎对结果没有任何影响。
      猜你喜欢
      • 1970-01-01
      • 2012-10-12
      • 2014-02-26
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 2019-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多