为什么可以';我在IIS的网络共享上使用PHP脚本中的shell_exec吗?

为什么可以';我在IIS的网络共享上使用PHP脚本中的shell_exec吗?,php,apache,iis,permissions,windows-server-2003,Php,Apache,Iis,Permissions,Windows Server 2003,我有一些驻留在网络共享上的PHP脚本。为了便于讨论,让我们调用共享\\nas\dev。我在IIS6中设置的\\w2k3dev\上有一个网站,通过设置“位于另一台计算机上的共享”将\\nas\dev\用作其主目录 我的一些脚本使用shell_exec在服务器上执行函数并将结果返回到脚本。为了论证起见,假设我只是得到一个目录列表,如下所示: echo shell_exec('dir') 如果在IIS中运行脚本,则不会得到任何输出,但也不会得到错误日志 如果我在\\w2k3dev\上设置了Apach

我有一些驻留在网络共享上的PHP脚本。为了便于讨论,让我们调用共享
\\nas\dev
。我在IIS6中设置的
\\w2k3dev\
上有一个网站,通过设置“位于另一台计算机上的共享”将
\\nas\dev\
用作其主目录

我的一些脚本使用
shell_exec
在服务器上执行函数并将结果返回到脚本。为了论证起见,假设我只是得到一个目录列表,如下所示:

echo shell_exec('dir')

  • 如果在IIS中运行脚本,则不会得到任何输出,但也不会得到错误日志
  • 如果我在
    \\w2k3dev\
    上设置了Apache,并将其配置为使用相同的共享,脚本运行正常
  • 如果我将脚本复制到本地计算机并通过IIS运行它,它就可以正常工作
因此,只有当IIS被设置为使用包含
shell\u exec
的脚本的网络共享时,问题才会出现。我的脚本的其他方面都很好

在procmon中,我可以看到cmd.exe的操作完全不同,这取决于它是由IIS还是Apache运行。我有更多的细节,但为了简洁起见,我现在将省略它们,除非有人要求更多的细节

非常感谢你看这个,我已经不知所措了

问候


中,您可以在php.net shell_exec的手册中查看这些特定于IIS的注释:


谢谢你的回答本杰明。我以前看过这些评论,但如果我遗漏了什么,我会再看一眼,我尝试了所有这些建议。我会等待一段时间,看看是否有其他人回答,如果我没有得到任何其他答案,我会奖励你答案-你的答案可能无法解决我的特定问题,但它可能会帮助其他与我处境类似的人。为伊恩干杯