PHP | Powershell | shell_exec()|权限不够

时间:2014-08-21 13:59:25

标签: php shell powershell exec

我正在尝试开发一个PHP应用程序,它通过shell_exec()执行Powershell命令。

然而,一旦命令执行,它就不起作用,因为它说它没有权限。任何想法我必须做什么?

我的代码:

    $psscriptpath = "C:\inetpub\htdocs\school_panel\scripts\change.ps1";
    $cmdlet = "powershell.exe -executionpolicy remotesigned -File {$psscriptpath} -username {$username} -password {$password} < NUL";
    echo $cmdlet;           
    $output = shell_exec($cmdlet);
    echo $output;

出现错误信息:

powershell.exe -executionpolicy remotesigned -File C:\inetpub\htdocs\school_panel\scripts\change.ps1 -username testingacount -password TestingTest321 < NULSet-ADAccountPassword : Access is denied
At C:\inetpub\htdocs\school_panel\scripts\change.ps1:18 char:22
+ Set-ADAccountPassword <<<<  $username -NewPassword $newpwd -Reset
    + CategoryInfo          : PermissionDenied: (testingacount:ADAccount) [Set-ADAccountPassword], UnauthorizedAccessException
    + FullyQualifiedErrorId : Access is denied,Microsoft.ActiveDirectory.Management.Commands.SetADAccountPassword

我已经尝试过:

  • 在两个版本的powershell
  • 上将执行策略设置为不受限制
  • 授予IUSER for CMD,Powershell,PHP-cgi.exe,PHP.exe以及包含该网站的文件夹的完全权限
  • 使用代码重新排列并进行各种更改。

1 个答案:

答案 0 :(得分:0)

允许Web服务器/引擎直接在shell中运行命令是我无法想到的任何方式。允许以高权限运行所述命令是一个更糟糕的想法。

来源:http://www.w3.org/Security/faq/wwwsf3.html(详情请参阅Q3。它指的是unix root用户,但我想 root startup - &gt; fork to nobody user 的系统在多个web服务器之间共享多个平台)