Codemancer Geschrieben 25. März 2011 Geschrieben 25. März 2011 Servus, Beim setzen des UserFlags "UF_PASSWORD_EXPIRED" machen sowohl NetUserAdd als auch NetUserSetInfo genau gar nichts. Die beiden API-Funktionen werden an sich sauber ausgeführt (d.h. es wird alles so gesetzt, wie ich es haben will), jedoch nur dieser eine Wert nicht. Wenn ich den Flag in den entsprechenden Windows-Einstellungen setze, taucht er auch beim NetUserGetInfo-Aufruf auf. Die Flag-werte werden sauber ausgelesen ("UF_NORMAL_ACCOUNT" / "UF_SCRIPT" / "UF_PASSWORD_EXPIRED") aber wenn ich jetzt mal ganz doof genau diesen Wert setzen will, dann werden nur "UF_NORMAL_ACCOUNT" und "UF_SCRIPT" gesetzt... Ist euch da irgendeine Besonderheit bekannt? In der Documentation steht, dass dieser Wert von Win2k und WinNT nicht unterstützt wird. Ich selbst probiere es aber auf WinXP - und da Windows diesen Wert irgendwie setzt, muss man das doch über die API auch hin kriegen - zumal man ja jeden anderen Schrott auch setzen kann. MfG Enrico Zitieren
Klotzkopp Geschrieben 25. März 2011 Geschrieben 25. März 2011 Domänenbenutzer oder lokaler Benutzer? Zitieren
Codemancer Geschrieben 25. März 2011 Autor Geschrieben 25. März 2011 Es handelt sich hierbei um Lokale Benutzer. Zitieren
Klotzkopp Geschrieben 25. März 2011 Geschrieben 25. März 2011 Welche Werte geben die Funktionen zurück? Zitieren
Codemancer Geschrieben 25. März 2011 Autor Geschrieben 25. März 2011 Der Rückgabewert beider Funktionen ist 0 ("Der Vorgang wurde erfolgreich beendet") Hier mal meine Eingabewerte: Comments "Script Normal Passwd_Expired " Flag 8389121 HomeDir "" Password "test" Password_age 0 PrivilegeLevel 1 Script_Path "" Username "250311-133432" Es klappt ja auch wirklich alles tadellos. Auch wenn ich andere Flags setze (z.B. UF_DONT_EXPIRE_PASSWD oder UF_ACCOUNTDISABLE) werden jene auch wirklich übernommen. Nur dieser eine Flag (AFAIK) nicht. Zitieren
Codemancer Geschrieben 28. März 2011 Autor Geschrieben 28. März 2011 Habe das Problem nun in den Griff bekommen. Und zwar sieht das so aus, dass es eine mannigfaltige Anzahl an UserInfo-Strukturen gibt, die man in Kombination mit den NetUser***-Funktionen benutzen kann. Jedoch unterscheiden sich diese in dem, was sie können und was nicht (wobei das immer Property-Abhängig ist). Durch wälzen der Microsoft-Dokumentation, welche ziemlich verwirrend ist und auch erst nach 500-maligem Nachlesen die Informationen rausrückt, die man auch tatsächlich gebrauchen kann, habe ich heraus gefunden, dass für alles vor WindowsXP die UserInfo3 und für alles ab XP die UserInfo4 benutzt wird. Um den Flag UF_Passwd_Expired zu setzen, muss man diesen sowohl ins flag-Attribut reinsetzen, als auch das Attribut Password_Expired auf einen Wert ungleich 0 setzen, dann klappt es. Trotzdem Danke für die Mühe. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.