PHP |执行命令| Shell_exec()|活动目录

时间:2014-08-08 12:18:32

标签: php powershell active-directory exec

感谢您花时间阅读我的问题,让我们直接了解它。

我的最终(目标)是能够拥有一个基于Web的PHP应用程序,该应用程序允许用户修改网络内用户的活动目录。

我找到了需要通过Powershell运行的命令来更改活动目录中的用户密码。

现在这是我目前的设置:

  • 安装了IIS的主服务器和Web应用程序位于。
  • 将有几台连接到网络的计算机导航到网站并执行这些命令

我尝试添加代码:

$query = shell_exec('Import-Module ActiveDirectory');
$query = shell_exec('$newpwd = ConvertTo-SecureString -String "'.$safe_password.'" -AsPlainText –Force');
$query = shell_exec('Set-ADAccountPassword "'.$safe_username.'" -NewPassword $newpwd –Reset');

现在我的问题是:

1)一旦计算机运行该页面并执行了那些命令,命令是否会在主服务器中执行?其中安装了PowerShell并授予了权限。如果没有,我的整个应用程序都无法运行,还有其他解决方案吗?

2)这些命令都是powershell命令而不是cmd.exe命令。 shell_exec()甚至在powershell中运行这些命令,或者只在cmd.exe中运行。如果它只在cmd中运行,那么这不会工作,我怎样才能通过powershell运行它?

如果你能回答并帮助我,我将不胜感激,非常感谢。

1 个答案:

答案 0 :(得分:0)

在PowerShell中设置参数,如下所示:

Param([string]$username, [string]$password)

然后像这样调用你的脚本:

shell_exec("powershell.exe " . $psscriptpath . " -username \"" . $username . "\" -password \"" . $password . "\"");