Bonjour à tous,
J'essaie de créer un script en PHP afin de réinitialiser les mots de passe de l'active directory.
J'ai une liste d'utilisateurs et leur mot de passe.
Pour l'instant je fais des tests sur un seul.
Je lance le script suivant qui se finit sans erreur et avec les messages
"Connexion LDAP réussie..."
puis
"OK - votre mot de passe a bien été changé"
mais quand je teste le nouveau mot de passe je ne réussis pas à me connecter.
<?php
//Connection AD
$host = "AdresseIP_LDAP";
$dn_std="ou=standard,dc=nom_domaine,dc=local";
$dn = "ou=utilisateurs,".$dn_std;
$LdapLog="LDAP_Login";
$LdapPswd="LDAP_Pswd";
$code="Identifiant_User";
$MdP_User="MdP_User";
// LDAP variables
$ldaphost = "ldap://AdresseIP_LDAP/"; // le serveur LDAP
$ldapport = 389; // le port du serveur LDAP
// Connexion LDAP
$ldapconn = ldap_connect($ldaphost, $ldapport)
or die("Impossible de se connecter au serveur LDAP $ldaphost");
if ($ldapconn) {
// Connexion au serveur LDAP
$ldapbind = ldap_bind($ldapconn, $LdapLog, $LdapPswd);
// Vérification de l'authentification
if ($ldapbind) {
echo "Connexion LDAP réussie...";
} else {
echo "Connexion LDAP échouée...";
}
}
//recherche de la personne dans l'active directory
$filter="(cn=".$code.")";
if (!($search=@ldap_search($ldapconn, $dn, $filter))) die("Recherche impossible");
$entry = ldap_first_entry($ldapconn, $search);
$dnareset = ldap_get_dn($ldapconn, $entry);
echo "<p>Reset du mot de passe : ";
$userdata["userpassword"] = $MdP_User;
if(ldap_mod_replace ($ldapconn, $dnareset, $userdata))
{echo "OK - votre mot de passe a bien été changé"; } else { echo "erreur"; }
?>
Est-ce que quelqu'un serait d'où vient le problème ?
Merci de votre aide
Partager