Php exec或shell_exec或超时windows server 2016

Php exec或shell_exec或超时windows server 2016,php,exec,system,shell-exec,windows-server-2016,Php,Exec,System,Shell Exec,Windows Server 2016,现在,我尝试使用shell\u exec或EXE通过FoxitReader打印文件。 但是我认为服务器阻止了这个操作。在php.ini中,没有任何功能被阻止 我运行的命令是: exec("\"C:\\Program Files (x86)\\Foxit Software\\Foxit Reader\FoxitReader.exe\" /t \"" . $Filename . " \" \"\\\\DRUCKER\\" . $toPrint["printOn"] . "\""); 我正是在命令

现在,我尝试使用
shell\u exec
或EXE通过FoxitReader打印文件。 但是我认为服务器阻止了这个操作。在
php.ini
中,没有任何功能被阻止

我运行的命令是:

exec("\"C:\\Program Files (x86)\\Foxit Software\\Foxit Reader\FoxitReader.exe\" /t \"" . $Filename . " \" \"\\\\DRUCKER\\" . $toPrint["printOn"] . "\""); 

我正是在命令行中运行这个命令的,这是有效的。但是通过php脚本,这段代码没有运行


我怎样才能解决这个问题?在Windows客户端上,这些函数没有问题…

您可以直接在命令提示符下运行该命令(与您的PHP应用程序在同一用户帐户下运行)吗?命令到底是什么?如果你不给我们看,我们不太可能知道它是否可能导致问题。另外,服务器上是否安装了FoxitReader?服务器是否有权访问必要的打印机?所有这些都是我们不知道的关于您的环境的相关信息,您还没有告诉我们。@ADyson:我运行的命令是:
exec(“\”C:\\Program Files(x86)\\Foxit Software\\Foxit Reader\FoxitReader.exe\”/t\.$Filename.“\\\\\\\DRUCKER\\”$toPrint[“printOn”]。“\”我在命令行中运行了这个命令,这就行了。但通过php脚本,这段代码并没有运行“我在命令行中运行那个命令”…真的吗?我假设在现实中,您用其他内容替换了
“$Filename.”
“$toPrint[“printOn”]”
部分,而不是运行完全相同的命令。我还假设你可能没有做所有的反斜杠逃逸。因此1)您是否能够验证
$Filename
的值是否符合您的预期,并且与命令行版本中的硬编码值相同?2) 您能为
toPrint[“printOn”]
验证同样的情况吗?您可以在PHP版本中临时硬编码一些值,以排除这些变量。3)上面,您随机跳过了一些反斜杠,而不是其他反斜杠。我不确定逃跑是否必要。验证第1点和第2点后,请在不使用额外反斜杠的情况下进行尝试。如果这不起作用,请尝试使用所有已逃逸的反斜杠(不仅仅是其中的一些)。另外,如果您向我们展示您在服务器命令行上成功运行的版本,以供比较,这会有所帮助。还有一件小事:
$Filename。“\”
…您在文件名末尾之后,但在引号之前留了一个空格,该引号用于在命令提示符下标记文件名的结尾。因此,这也可能导致混乱。