Tja wer brauch sowas nicht mal hier oder da? Wer es braucht kann es gern verwenden, ich denke der Vorgang ist recht simpel, aber ich wollt es auch nochmal für mich selbst hier abgelegt haben. Der Schnipsel sollte in der Lage sein das Passwort in der AD über LDAP zu ändern, viel Spaß beim probieren.
<?php
$username = $_POST['user_name'];
$ldap = ldap_connect($config['ldapServers'], 636);
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
if ($ldap)
{
$bind = ldap_bind($ldap, $config['ldapUsername'], $config['ldapPassword']);
$filter="(sAMAccountName=$username)";
$result = ldap_search($ldap,"dc=yourcompany,dc=com",$filter);
ldap_sort($ldap,$result,"sn");
$info = ldap_get_entries($ldap, $result);
for ($i=0; $i<$info["count"]; $i++)
{
echo "<p>You are changing the password for <b> ". $info[$i]["givenname"][0] .", " . $info[$i]["sn"][0] ."</b> (" . $info[$i]["samaccountname"][0] .") to <b>" . $_POST['user_pass'] ."</b></p>\n";
$passwd1 = $_POST['user_pass'];
$userDn = $info[$i]["distinguishedname"][0];
$newPassword = $passwd1;
$newPassword = "\"" . $newPassword . "\"";
$len = strlen($newPassword);
for ($i = 0; $i < $len; $i++)
{
$newPassw .= "{$newPassword{$i}}\000";}
$newPassword = $newPassw;
$userdata["unicodePwd"] = $newPassword;
$result = ldap_mod_replace($ldap, $userDn , $userdata);
if ($result)
echo "Your password has been changed!" ;
else
echo "There was a problem changing your password, please call IT for help";
}
}
@ldap_close($ldap);
?>
Sorry wegen der Formatierung etwas wenig Platz dafür hier
.
keine verwandetn Artikel








Hinterlasse einen Kommentar
Du solltest angemeldet sein um einen Kommentar zu schreiben.