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"); } }