PHP CGI | IIS |执行权限

时间:2014-08-19 15:47:01

标签: php iis cgi fastcgi

我有一个使用shell_exec命令的PHP页面:

$psscriptpath = "C:\inetpub\htdocs\school_panel\scripts\change.ps1";
            shell_exec("powershell.exe -executionpolicy remotesigned -File " . $psscriptpath . " -username \"" . $username . "\" -password \"" . $password . "\"");

然而,当我提交页面也已执行上面的代码时,我的页面只是超时(从未完成加载,直到达到超时计时器并且我收到此错误): enter image description here

http://puu.sh/aXEdY/22cc87310c.png

现在我做了一些研究,看来我需要以某种方式在IIS / PHP中设置某种执行脚本权限/权限? mabey改变一些php.ini配置?我真的不确定。

我已经尝试为powershell添加IUSER等权限。我甚至将powershell上的执行策略设置为remotesigned。看来我在IIS上安装了FastCGI和CGI模块。

我也尝试过使用php运行CMD脚本并且工作正常,而不是在浏览器中。

此致

1 个答案:

答案 0 :(得分:0)

您的解决方案就像这样简单:

shell_exec("powershell.exe -executionpolicy remotesigned -File {$psscriptpath} -username {$username} -password {$password} < NUL");

您不需要用双引号括起参数,并且为了防止powershell挂起,您需要在该行的末尾传递< NUL

< NUL将强制PowerShell的输出返回PHP。