我在Windows Server 2008上进行编程,我希望有一个WebUI与域名Active Directory进行交互。
我的一个主要问题是我正在使用HTML表单中的dsadd,但这没有成功。我知道我的命令是正确的,我已经在Servers命令行上测试了它
我的代码如下:
if (isset($_POST['Submit']))
{
$DesiredUsername = $_POST['DesiredUsername'];
$DesiredPassword = $_POST['DesiredPassword'];
$DU = "{$DesiredUsername}"; // Desired Username
$OU = "PHPCreatedUsers"; // Domain OU
$DC1 = "slayerserv"; // Domain Part one
$DC2 = "local"; // Domain Part Two
$PWD = "{$DesiredPassword}"; // Password
$ExecScript = 'dsadd user cn=$DesiredUsername,cn=PHPCreatedUsers,dc=slayerserv,dc=local -disabled no -pwd $DesiredPassword -mustchpwd yes';
exec($ExecScript, $output);
mysql_query("INSERT INTO addedusers (`ID`, `DU`, `OU`, `DC1`, `DC2, `PWD`)
VALUES ('', '$DU', '$OU', '$DC1', '$DC2', '$PWD')");
echo "<br><br>";
print_r($output);
# echo "User: $DesiredUsername Has been Created";
}
当我print_r($ output);它返回一个空白数组:
Array()
有人能为我提供解决方案或指出我正确的方向吗?
++++
下面是我使用exec
的一个工作示例 $Script = 'ping 127.0.0.1 -n 1';
exec($Script, $Output);
print_r($Output);
的print_r($输出);给出:
数组([0] =&gt; [1] =&gt;使用32字节数据对127.0.0.1进行Ping操作:[2] =&gt;从127.0.0.1回复:bytes = 32 time&lt; 1ms TTL = 128 [3 ] =&gt; [4] =&gt; Ping统计数据为127.0.0.1:[5] =&gt;数据包:已发送= 1,已接收= 1,已丢失= 0(0%丢失),[6] =&gt;近似轮以毫秒为单位的跳闸时间:[7] =&gt;最小值= 0ms,最大值= 0ms,平均值= 0ms)
答案 0 :(得分:0)
事实证明,从PHP运行dsadd存在问题,原来将用户保存到PHPCreatedUsers的OU失败。
我更改了该行以将创建的用户保存到“用户”的默认OU中,并且它可以正常工作。