• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

AD Passwörtänderung auf Windows 2000 Server durch PHP 4.1.0 mit LDAP Modul

Luke Skywalker

New member
Hallo.

Habe ein Problem auf der Arbeit und bräuchte eine Möglichkeit um auf einen Windows 2000 Server mit Active Directory (AD) ein Passwort, über das LDAP (Lightweight Directory Access Protocol) Modul von PHP 4.1.0, zu ändern.
Ich möchte hier keine Lösung zu Linux AD Servern haben, da dies unter PHP kein Problem ist, aber nur mit Windows funktioniert es nicht. Mit Perl ist das ganze gar kein Problem, aber wir haben nun schon ein PHP Script fertig und wollten dies auch beibehalten und es geht auch bereits alles, nur die Passwortänderung nicht.
Hat da vielleicht einen Lösungsweg, entweder komplett über PHP (ist mir am liebsten) oder eine Möglichkeit, wie ich ein Perl Script nur für die Passwortänderung ansprechen kann (über PHP wäre dies dann, mit system() haben wir es breichts versucht) um das Passwort zu ändern.
Im Moment ist das Perl Script wohl noch ne exe, aber so schwer ist es auch nicht, dies zu ändern.

Ein Bedinung noch, dass Passwort soll nicht über den Header mit der GET Methode übertragen werden, aus Sicherheitsgründen.
 
Also ihr habt ein Perl Skript, welches dass Passwort ändern kann und php kann es nicht.... hmm habt ihr den Perl Code mal in PHP übersetzt und ausprobiert??
(sorry kenne mich mit LDAP + AD null aus...)
Wenn es mit Perl geht, dann sehe ich nicht ein, warum es nicht auch mit PHP gehen sollte...
was ist mit einem Upgrade auf PHP 4.1.1... vielleicht hilft das (könnte ja sein, daß PHP 4.1.0 da noch einen Bug hatte... allerdings wird im Chnaglog nix LDAP mäßiges aufgeführt... aber wer weiß...)

Ob Dein Passwort mit GET oder POST übertragen wird ist hier erstmal nicht von Belang.... es geht rein um die serverseitigen Zugriffe auf den LDAP, bzw. AD Server, richtig??
 
Albu schrieb:
Also ihr habt ein Perl Skript, welches dass Passwort ändern kann und php kann es nicht.... hmm habt ihr den Perl Code mal in PHP übersetzt und ausprobiert??

Nein, übersetzen kann man diesen nicht.


Wenn es mit Perl geht, dann sehe ich nicht ein, warum es nicht auch mit PHP gehen sollte...
was ist mit einem Upgrade auf PHP 4.1.1... vielleicht hilft das (könnte ja sein, daß PHP 4.1.0 da noch einen Bug hatte...

Es ist auch kein Bug, auch kann ich mir nicht vorstellen, dass es ein Bug ist, da AD Passwörter auf Linux und Windows Systemen unterschiedlich gespeichert werden.
--------
Wieso, so ungewöhnlich ist das nicht. PHP kann halt nicht alles, da es mehr eine WebSprache ist, Perl hingegen ist nicht nur eine WebSprache, es wird auch dazu benutzt um kleine Programme zu schreiben, welche die Administration von Servern z.B. erleichtern oder automatisieren. Außerdem geht es in Perl auch nur, weil jemand ein spezialles Modul dafür geschrieben hat.


allerdings wird im Chnaglog nix LDAP mäßiges aufgefürt... aber wer weiß...)

Was ist denn die Chnaglog?

Ob Dein Passwort mit GET oder POST übertragen wird ist hier erstmal nicht von Belang.... es geht rein um die serverseitigen Zugriffe auf den LDAP, bzw. AD Server, richtig??

Ich bezog mich bei der GET bzw. POST Methode, weil das Perl Script als exe so ausgeführt wird:

perlscript neuespassword vorname nachname php

Nicht, dass man auf die Idee kommt, das ganze über den Header an das Programm zu schicken, nur das es dann als cgi (Endung: pl) ausgeführt wird.
 
Wieso kann man das Perl Skript nicht in PHP umsetzen?? Liegt kein Quellcode vor?? Da PHP und Perl von der Syntax her sehr ähnlich sind, sollte es doch prinzipiell möglich sein, das Ganze mal in PHP zu verwandeln, oder?!?

Durch die Möglichkeit gerade unter Windows auf COM zuzugreifen, sehe ich nicht ein, daß es etwas geben sollte, was man nicht mit PHP machen könnte (im Rahmen eines Webprojektes, so wie dieses)
Also schlimmstenfalles müßte ein COM Objekt geschrieben werden (z.B. Visual Basic) welches die gewünschten Dienste erledigt....

Changelog (wenigstens die Buchstaben waren alle komplett ;) )

Also ich würde das Perl Skript wenn dann nur über ein PHP Skript ansprechen, was bedeutet, daß die Daten wie auch immer nach PHP geliefert werden und von dort aus meinetwegen per exec oder system call an das Perl übergeben werden. Was ihr aber anscheinend schon versucht habt?!?!? Hat es denn funktioniert und ihr sucht jetzt eine bessere Lösung oder wie??
 
Hallo!

Also mit den vorhandenen COM-Objekten von W2k sollte es eigentlich funktionieren, ich hab das ganze nur in ASP gemacht und kann dir mal etwas ASP-Code hinposten, vielleicht kannst du das mit den com-funktionen von PHP einbauen(Mache sowas nicht in PHP).

Const strDomain = "WinNT://Domainname/"
Const strAlterName = "Administrator"
Const strPassword = "NeuesPasswort"

Set WshNetwork = WScript.CreateObject("WScript.Network")
CNAME = WshNetwork.ComputerName
Set oUser = GetObject(strDomain & CNAME & "/" & strAlterName)

oUser.setPassword strPassword

So funkt das ganze mit ASP, zumindest kannst du hier die Objekte erkennen und evtl. auch mit PHP verwenden.
 
Zurück
Oben