none
Prüfen ob AD-Kennwortänderung schon repliziert ist RRS feed

  • Frage

  • Hallo,
    auf einem Exchange07 habe ich ein Skript gemacht, um automatisiert bei nicht mehr beschäftigten Mitarbeitern eine Abwesenheitsnachricht einzustellen a la "Konto inaktiv. Bitte wenden Sie sich an ....".
    Um die Nachricht einzustellen, überschreibe ich das Userkennwort mit einem zufällig generiertem und setzte dann die Abwesenheitsnachricht.
    Ab und zu ist die Kennwortänderung aber noch nicht vollständig repliziert und die Nachricht kann wegen dem dann felschem Kennwort nicht eingestellt werden. Eine Unterbrechung für ein paar Sekunden kommt nicht in Frage, wegen der Gesamtlaufzeit.
    Der generierte Kennwortstring steht mir an der Stelle zur Verfügung.

    Wie kann ich Prüfen ob die Kennwortänderung schon repliziert ist?
    Ich dachte evtl. an einen Einloggversuch mit dem neuen Kennwort. Bei Fehler würd ich dann im Einzelfall ein paar sek warten und erneut versuchen.

    Schonmal vielen Dank im Vorraus!
    Freitag, 20. November 2009 11:49

Antworten

  • Hi,

    Du könntest beispielsweise das "pwdLastSet" Attribut für den Benutzer auf den DCs abfragen oder die Metadaten des pwdLastSet Attributs.
    Einen Ansatz für ersteres findest Du beispielsweise hier: http://gallery.technet.microsoft.com/ScriptCenter/ru-RU/7bc5bc1c-e934-4ce1-8a77-3b0105807402

    Grundsätzlich sollte jedoch standardmäßig bei einem fehlschlagenden Logon-Versuch der PDC-Emulator befragt werden, zu dem die Kennwortänderung auch direkt vom ändernden DC repliziert wird. Vielleicht ist also die Scriptlogik noch einmal einen Blick wert.

    Viele Grüße
    Fabian
    http://blogs.technet.com/deds
    • Als Antwort markiert Schuhmann Dienstag, 24. November 2009 10:09
    Freitag, 20. November 2009 16:07
  • Hallo,

    das Vorhaben wird nicht von Erfolg gekrönt sein. Wie Fabian schon richtig erwähnte, werden Kennwortänderungen an den PDC Emulator repliziert. Deshalb drückt sich die Kennwortänderung eigentlich sofort durch. Allerdings hast Du noch ein anderes Problem. Der Exchange hat einen AD Cache. Das heisst, das der Exchange Server bestimmte Information in seinem Cache vorhält. Für Benutzerdaten sind das glaube ich fünf Minuten.

    Als nächstes funkt Dir noch der IIS dazwischen. Der hat auch einen Cache. Das ist auch der Grund, dass Du Dich noch eine Weile am OWA mit dem alten Kennwort anmelden kannst. An der Cachedauer kannst Du aber hier schrauben:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters

    UserTokenTTL Reg_DWORD

    Jetzt die TTL für den Cache in Sekunden.

    Nachdem Du den Key geändert hast, musst Du in der CMD ein iisreset ausführen.

    Viele Grüße

    Frank
    • Als Antwort markiert Schuhmann Dienstag, 24. November 2009 10:09
    Montag, 23. November 2009 16:53

Alle Antworten

  • Hi,

    Du könntest beispielsweise das "pwdLastSet" Attribut für den Benutzer auf den DCs abfragen oder die Metadaten des pwdLastSet Attributs.
    Einen Ansatz für ersteres findest Du beispielsweise hier: http://gallery.technet.microsoft.com/ScriptCenter/ru-RU/7bc5bc1c-e934-4ce1-8a77-3b0105807402

    Grundsätzlich sollte jedoch standardmäßig bei einem fehlschlagenden Logon-Versuch der PDC-Emulator befragt werden, zu dem die Kennwortänderung auch direkt vom ändernden DC repliziert wird. Vielleicht ist also die Scriptlogik noch einmal einen Blick wert.

    Viele Grüße
    Fabian
    http://blogs.technet.com/deds
    • Als Antwort markiert Schuhmann Dienstag, 24. November 2009 10:09
    Freitag, 20. November 2009 16:07
  • Hi,

    ansonsten mache ich alle Abfragen und Co immer gegen den selben DC, damit der Fehler nicht auftreten kann.
    Die Abwesehnheitsnachricht mache ich über die Exchange Web Services. Da kann ich ihm keinen gezielten DC mitgeben (jedenfalls nicht dass ich wüsste).
    Der Weg mit dem "pwdLastSet" müsste funktionieren, das werde ich Montag ausprobieren.

    Danke.
    Freitag, 20. November 2009 17:36
  • Hallo,

    das Vorhaben wird nicht von Erfolg gekrönt sein. Wie Fabian schon richtig erwähnte, werden Kennwortänderungen an den PDC Emulator repliziert. Deshalb drückt sich die Kennwortänderung eigentlich sofort durch. Allerdings hast Du noch ein anderes Problem. Der Exchange hat einen AD Cache. Das heisst, das der Exchange Server bestimmte Information in seinem Cache vorhält. Für Benutzerdaten sind das glaube ich fünf Minuten.

    Als nächstes funkt Dir noch der IIS dazwischen. Der hat auch einen Cache. Das ist auch der Grund, dass Du Dich noch eine Weile am OWA mit dem alten Kennwort anmelden kannst. An der Cachedauer kannst Du aber hier schrauben:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters

    UserTokenTTL Reg_DWORD

    Jetzt die TTL für den Cache in Sekunden.

    Nachdem Du den Key geändert hast, musst Du in der CMD ein iisreset ausführen.

    Viele Grüße

    Frank
    • Als Antwort markiert Schuhmann Dienstag, 24. November 2009 10:09
    Montag, 23. November 2009 16:53
  • Hallo,

    das ist echt ein super Forum hier!

    Ich hab es erst mit dem pwdLstSet ausprobiert und das klappte auch ganz gut. Aber nach mehrmaligem Test waren doch vereinzelte Fälle zu sehen, bei denen er anzeigt, dass das Kennwort geändert wurde aber die Nachricht trotzdem nicht setzen konnte. Das wird wohl am Cache liegen, wie Frank geschrieben hat. Ich habe die TTL jetzt heruntergesetzt und werde es die nächste Zeit noch im Auge behalten.

    Vielen Dank!
    Dienstag, 24. November 2009 10:09