【问题标题】:PHP CGI | IIS | Execute PermissionsPHP CGI |信息系统 |执行权限
【发布时间】:2014-10-12 19:24:16
【问题描述】:

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

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

但是,当我提交页面又执行了上面的代码时,我的页面只是超时(在达到超时计时器之前永远不会完成加载并且我收到此错误):

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

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

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

我也尝试过使用 php 通过 CMD 运行脚本,它可以工作,只是不在浏览器中。

问候

【问题讨论】:

  • 没人有什么想法吗?

标签: php iis cgi fastcgi


【解决方案1】:

您的解决方案就这么简单:

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

参数不用双引号括起来,为了防止powershell挂起,需要在行尾传递< NUL。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-15
    • 2014-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 2018-01-13
    • 2012-07-12
    相关资源
    最近更新 更多