0

我正在 Windows Server 2008 上编程,我希望有一个 WebUI 来与域活动目录进行交互。

我的主要问题之一是我正在使用 HTML 表单中的 dsadd ,但这没有成功。我知道我的命令是正确的,我已经在服务器命令行上对其进行了测试

我的代码如下:

    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); 它返回一个空白数组:

大批 ( )

谁能为我提供解决方案或指出正确的方向?

++++

下面是我使用 exec 的一个工作示例

        $Script = 'ping 127.0.0.1 -n 1';
    exec($Script, $Output);
    print_r($Output);

print_r($输出); 给出:

数组( [0] => [1] => 用 32 字节数据 Ping 127.0.0.1:[2] => 来自 127.0.0.1 的回复:字节=32 时间<1ms TTL=128 [3] => [4] => 127.0.0.1 的 Ping 统计信息:[5] => 数据包:发送 = 1,接收 = 1,丢失 = 0(0% 丢失),[6] => 以毫秒为单位的近似往返时间:[7] => 最小值 = 0 毫秒,最大值 = 0 毫秒,平均值 = 0 毫秒)

4

1 回答 1

0

原来从PHP运行dsadd有问题,原来将用户保存到PHPCreatedUsers的OU中失败了。

我更改了该行以将创建的用户保存到“用户”的默认 OU 中,并且它可以正常工作。

于 2012-11-18T00:54:59.863 回答