php exec关闭命令在IIS 7上不起作用


php exec shutdown command not working on IIS 7

所以我的环境是安装了php 5.3和5.5的Windows服务器2008 R2。我在php.ini中设置了fastcgi.impersonate =1,并将IIS_IUSRS添加到Administrator组中(这不是永久性的,只是一个临时操作,试图消除问题)。

如果我运行:

exec('dir',$output)

$output展示了我的期望。但是,如果我运行

exec('shutdown -s -f', $output)

我没有从$output得到任何东西,机器也没有关闭。也没有报告任何错误/警告。

我试着把同样的命令放在.bat文件中并运行

exec('shutdown.bat',$output);

但它产生的结果与通过命令行运行关机命令相同。

如果我双击shutdown.bat文件来运行它,或者如果我在cmd窗口中键入关闭命令,机器将关闭。所以我知道指挥是好的。显然,我缺少一个更高权限的问题,但我不知道它是什么。

因此,经过多次尝试和磨难,我发现(至少在服务器2008 r2 w/IIS7中)从fast_cgi或php执行关闭命令是不可能的。我只需要安装apache并在其下执行shutdown命令,该命令就可以完美地工作。