0

Windows Server 2008でプログラミングしていて、ドメインのActiveDirectoryと対話するためのWebUIが必要です。

私の主な問題の1つは、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($ Output); 与える:

配列([0] => [1] => 32バイトのデータで127.0.0.1にpingを実行します:[2] => 127.0.0.1からの応答:bytes = 32 time <1ms TTL = 128 [3] => [4] => 127.0.0.1のping統計:[5] =>パケット:送信= 1、受信= 1、損失= 0(0%の損失)、[6] =>ミリ秒単位の概算ラウンドトリップ時間:[7] =>最小=0ms、最大= 0ms、平均= 0ms)

4

1 に答える 1

0

PHPから実行されているdsaddに問題があることが判明しました。ユーザーをPHPCreatedUsersのOUに保存するためのオリジナルは失敗します。

作成したユーザーをデフォルトのOU「users」に保存するように行を変更しましたが、間違いなく機能します。

于 2012-11-18T00:54:59.863 に答える