コード例 #1
0
function importuser($suffix, $ou, $OnlyBranch = 0)
{
    $ldap = new ldapAD();
    if ($OnlyBranch == 1) {
        $hash = $ldap->Ldap_list($suffix, "(objectClass=user)", array(), 5000);
    } else {
        $hash = $ldap->Ldap_search($suffix, "(objectClass=user)", array(), 5000);
    }
    echo " {$hash["count"]} users\n";
    $prefix = "INSERT IGNORE INTO activedirectory_users \n(dn,samaccountname,mail,userprincipalname,displayname,ou,telephonenumber,mobile,givenname,title,sn) VALUES";
    $q = new mysql();
    for ($i = 0; $i < $hash["count"]; $i++) {
        $dn = $hash[$i]["dn"];
        $displayname = $hash[$i]["displayname"][0];
        $userprincipalname = $hash[$i]["userprincipalname"][0];
        $samaccountname = $hash[$i]["samaccountname"][0];
        $telephoneNumber = $hash[$i]["telephoneNumber"][0];
        $mobile = $hash[$i]["mobile"][0];
        $mail = $hash[$i]["mail"][0];
        $givenname = $hash[$i]["givenname"][0];
        $title = $hash[$i]["title"][0];
        $sn = $hash[$i]["sn"][0];
        for ($z = 0; $z < $hash[$i]["memberof"]["count"]; $z++) {
            LinkGroups($hash[$i]["memberof"][$z], $dn);
        }
        $dn = addslashes(utf8_encode($dn));
        $displayname = addslashes(utf8_encode($displayname));
        $userprincipalname = addslashes(utf8_encode($userprincipalname));
        $samaccountname = addslashes(utf8_encode($samaccountname));
        $givenname = addslashes(utf8_encode($givenname));
        $title = addslashes(utf8_encode($title));
        $sn = addslashes(utf8_encode($sn));
        $GLOBALS["MEMORY_COUNT_USERS"] = $GLOBALS["MEMORY_COUNT_USERS"] + 1;
        $sql[] = "('{$dn}','{$samaccountname}','{$mail}','{$userprincipalname}','{$displayname}','{$ou}','{$telephoneNumber}','{$mobile}','{$givenname}','{$title}','{$sn}')";
        if (count($sql) > 500) {
            if ($GLOBALS["VERBOSE"]) {
                "echo add 500 users\n";
            }
            $sqlfinal = $prefix . " " . @implode(",", $sql);
            $q->QUERY_SQL($sqlfinal, "artica_backup");
            if (!$q->ok) {
                echo $q->mysql_error . "\n";
                return;
            }
            $sql = array();
        }
    }
    if (count($sql) > 0) {
        if ($GLOBALS["VERBOSE"]) {
            "echo add " . count($sql) . " users\n";
        }
        $sqlfinal = $prefix . " " . @implode(",", $sql);
        $q->QUERY_SQL($sqlfinal, "artica_backup");
    }
}