我正在尝试开发一个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
我已经尝试过:
答案 0 :(得分:0)
允许Web服务器/引擎直接在shell中运行命令是我无法想到的任何方式。允许以高权限运行所述命令是一个更糟糕的想法。
来源:http://www.w3.org/Security/faq/wwwsf3.html(详情请参阅Q3。它指的是unix root用户,但我想 root startup - &gt; fork to nobody user 的系统在多个web服务器之间共享多个平台)