Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Active Directory - Passwort ändern
Theki
myCSharp.de - Member



Dabei seit:
Beiträge: 55

Themenstarter:

Active Directory - Passwort ändern

beantworten | zitieren | melden

Hey zusammen,

seit einigen Tagen sitzt ich nun über dem Problem, dass ich gerne auf unserem Server von meinem Rechner Benutzer-Passwörter ändern möchte.

Nehmen wir follgendes an:

-Servername: server01
-Serverdomain: serverhome.de

-Auf dem Server Administrator Konto: Administrator
-Passendes Passwort: Test

Von follgendem Benutzer sollen die Daten geändert werden: MaxMustermann

Nun habe ich mir follgendes Code zusammen gesucht:


string neuPW = "123";
 DirectoryEntry uEntry = new DirectoryEntry("LDAP://server01/cn=MaxMustermann,ou=jugendliche,ou=benutzer,dc=serverhome,dc=de", "Administrator@serverhome.de", "Test", AuthenticationTypes.None);

                uEntry.Options.PasswordPort = 389;
                uEntry.Options.PasswordEncoding = PasswordEncodingMethod.PasswordEncodingClear;

                uEntry.Invoke("SetPassword", new object[] { neuPW});
                uEntry.Properties["LockOutTime"].Value = 0; //unlock account

                uEntry.Close();

Dabei bekomm ich den Fehler, dass der Server nicht funktionstüchtig sei.


Für mich ist das Neuland. Was muss ich anders machen?

Vielen Dank im voraus

Theki
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Theki am .
private Nachricht | Beiträge des Benutzers
tequila slammer
myCSharp.de - Member



Dabei seit:
Beiträge: 253
Herkunft: DE

beantworten | zitieren | melden

Hallo Theki,

wenn es kein eigenes Programm sein muss, kannst du doch mit dem Active Directory-Benutzer und -Computer MMC-Snap-In arbeiten. Ansonsten hat Google eine Menge ausgespuckt. Unteranderem das hier:

http://www.codeproject.com/KB/system/everythingInAD.aspx

Mfg
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von tequila slammer am .
private Nachricht | Beiträge des Benutzers
Theki
myCSharp.de - Member



Dabei seit:
Beiträge: 55

Themenstarter:

beantworten | zitieren | melden

In einem Programm integiert wäre super, deswegen ja meine Frage.
Vom Codeprojekt hatte ich zumteil auch den Code, zumindest den letzten Teil.

Ich denke dass der Fehler eher hier liegt:


DirectoryEntry uEntry = new DirectoryEntry("LDAP://server01/cn=MaxMustermann,ou=jugendliche,ou=benutzer,dc=serverhome,dc=de", "Administrator@serverhome.de", "Test", AuthenticationTypes.None);

Und hoffe, dass vllt einer von euch dort einen Fehler findet.
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3.170
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,

ich bin jetzt nicht ganz sicher, aber brauchst Du eigentlich den Servernamen wenn Du über LDAP gehst? Ich dachte das braucht man nur wenn man sich auf einen bestimmten Rechner in der Domäne verbinden will, aber nicht für den Benutzer -> da müsste er sich eigentlich selber den Domänencontroller raussuchen. Versuch mal mit

DirectoryEntry uEntry = new DirectoryEntry("LDAP://cn=MaxMustermann,ou=jugendliche,ou=benutzer,dc=serverhome,dc=de", "Administrator@serverhome.de", "Test", AuthenticationTypes.None);

Gruß, MarsStein

Edit: So steht's auch hier: http://msdn.microsoft.com/de-de/library/system.directoryservices.directoryentry.path.aspx unter "Hinweise".
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von MarsStein am .
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
Theki
myCSharp.de - Member



Dabei seit:
Beiträge: 55

Themenstarter:

beantworten | zitieren | melden

Danke, hast recht, müsste theoretisch so klappen, habe die Änderungen so vorgenomen.

Kann leider erst an Donnerstag wieder in diesem Domänennetzwerk arbeiten.
dc=serverhome,dc=de"

Weiß nur nich, ob dies so richtig ist oder so:
dc=serverhome.de


P.S.: Werde mich dann melden ;)
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Theki am .
private Nachricht | Beiträge des Benutzers
tequila slammer
myCSharp.de - Member



Dabei seit:
Beiträge: 253
Herkunft: DE

beantworten | zitieren | melden

die erster Variante sollte es für einen fullqualified Domainname sein.
private Nachricht | Beiträge des Benutzers
Theki
myCSharp.de - Member



Dabei seit:
Beiträge: 55

Themenstarter:

beantworten | zitieren | melden

So tut mir leid, ich konnte erst jetzt antworten und habe es grade mal mit euren vorschlägen probiert.

Ich benutze nun follgenden Code:


string neuPW = "123";
DirectoryEntry uEntry = new DirectoryEntry("LDAP://cn=MaxMustermann,ou=jugendliche,ou=benutzer,dc=serverhome.de", "Administrator@serverhome.de", "Test", AuthenticationTypes.None);

                uEntry.Options.PasswordPort = 389;
                uEntry.Options.PasswordEncoding = PasswordEncodingMethod.PasswordEncodingClear;

                uEntry.Invoke("SetPassword", new object[] { neuPW});
                uEntry.Properties["LockOutTime"].Value = 0; //unlock account

                uEntry.Close();

Beim Auführen, bekomm ich nun follgenden Fehler:


System. DirectoryServices.DirectorySericesCOMException (0x8007202B): Eine Referenzauswertung wurde vom Server zurückgesendet.

Was ist dort noch falsch?
private Nachricht | Beiträge des Benutzers
Theki
myCSharp.de - Member



Dabei seit:
Beiträge: 55

Themenstarter:

beantworten | zitieren | melden

Auch wenn ich ungern pushe... suche bin ich immer noch auf der Suche nach meinem Fehler..
private Nachricht | Beiträge des Benutzers