Erhalten einen Fehler auszuführen:ldap_mod_replace() [function.ldap-mod-ersetzen]: Ändern: Server nicht bereit ist,
Server is unwilling to perform
während unicodePwd in AD durch PHP zu verändern. Ich bin jedoch in der Lage, irgendwelche Attribute der Benutzer zu suchen, hinzuzufügen, zu entfernen und zu ändern.
Verwenden des Administratorkontos zum Binden und des Administrators hat die vollen Rechte zum Ändern der Kennwörter aller Benutzer.
Hier ist der Code, den ich mit:
<?php
$dn = "CN=Vishal Makwana,OU=Address Book,DC=example,DC=com";
$ad = ldap_connect("ldap://example.com")
or die("Couldn't connect to AD!");
ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3);
$bd = ldap_bind($ad,"[email protected]","admin1");
if($bd) {
echo "AD bind successfully";
}
else {
echo "Couldn't bind AD";;
}
$user["unicodePwd"] = "asdf1234";
$result = ldap_mod_replace($ad, $dn, $user);
if ($result) echo "User modified!"; else
echo "There was a problem!";
ldap_unbind($ad);
?>
Vielen Dank David, aber ich bin etwas verwirrt. Als ich versuchte, eine SSL-Verbindung (ldaps: //) zu verwenden, bindet es nicht einmal an den AD. Ich meine, sollte ich etwas tun müssen, um die SSL-Unterstützung in Apache oder PHP zu aktivieren? Wenn ja, wie kann ich das tun? –
sollte nicht "{$ newpassword {$ i}} \ 000" "{$ newpassword [$ i]} \ 000" sein, also eckige Klammern statt lockig? – redreinard