ldap — ошибка при создании новой записи в Active Directory с использованием ldap_add () в переполнении стека

Я пытаюсь создать нового пользователя в Active Directory, используя php с помощью следующих кодов:

$server = "ldaps://172.16.0.2";
$user = 'someuser'.'@domain.com'; //admin user
$psw = "somepassword"; //admin password

echo "<h2>Mag dagdag ako ng bagong impormasyon</h2>";

ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);

$ds =ldap_connect($server,389);

ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);

$r=ldap_bind($ds, $user, $psw);


$info['cn']='trying.hard';
$info['sAMAccountName']='trying.hard';

$info['givenName']='trying';

$info['mail']='[email protected]';
$info['sn']='hard';

$dn='OU=CSS,OU=ETC,OU=AdminStaff,OU=MainBldg,OU=CollegeStaff,OU=DoMain,DC=domain,DC=com ';

$info['objectCategory'] = 'CN=Person,CN=Schema,CN=Configuration,DC=domain,DC=com ';

$info['objectClass'][0]= 'top';
$info['objectClass'][1]= 'person';
$info['objectClass'][2]= 'organizationalPerson';
$info['objectClass'][3]= 'user';

$info['useraccountcontrol'] = 66048;

$newpass = "112345";
$newPassword = "\"" . $newpass . "\"";
$len = strlen($newPassword);
$newPassw='';
for ($i = 0; $i < $len; $i++)
$newPassw .= "{$newPassword{$i}}\000";
$newPassword = $newPassw;
$info["unicodepwd"] = $newPassword;

$a=ldap_add($ds, $dn, $info);

if($a){
echo "Entry Succesfull!";
}else{
echo '</br>##-Entry Failed - '. ldap_err2str(ldap_errno($ds)) .' -##';
}
?>

Но я получаю следующую ошибку

 /*
Warning: ldap_add(): Add: Server is unwilling to perform in /var/www/ADMS/adduser.php on line 88

##-Entry Failed - Server is unwilling to perform -##
*/

Кто-нибудь может мне помочь в этом?

0

Решение

Можете ли вы изменить этот код:

 $newpass = "112345";
$newPassword = "\"" . $newpass . "\"";
$len = strlen($newPassword);
$newPassw='';
for ($i = 0; $i < $len; $i++)
$newPassw .= "{$newPassword{$i}}\000";
$newPassword = $newPassw;
$info["unicodepwd"] = $newPassword;

С этим:

$pwdtxt = "112345";
$newPassword = '"' . $pwdtxt . '"';
$newPass = iconv( 'UTF-8', 'UTF-16LE', $newPassword );
$info["unicodepwd"] = $newPassw;
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]