lastLogon vs. lastLogonTimestamp in Active Directory

9

Ein Mitarbeiter hat das Unternehmen verlassen. Ich versuche herauszufinden, wann sein AD-Konto zum letzten Mal angemeldet war - ob vor oder nach der Entlassung.

Im Fenster mit den Benutzereigenschaften befinden sich diese beiden Attribute: lastLogon und lastLogonTimestamp . Das Datum von lastLogon liegt vor dem Entlassungsdatum, das Datum von lastLogonTimestamp liegt jedoch nach dem Entlassungsdatum (in diesem Fall liegt also ein Sicherheitsproblem vor).

Woher wissen Sie, welches dieser Attribute die tatsächliche Anmeldezeit des letzten AD-Kontos anzeigt? Was ist der Unterschied zwischen ihnen?

Benutzereigenschaften - Attribut-Editor

ZygD
quelle

Antworten:

6

TL; DR - Wenn Sie die genaueste Anmeldezeit wünschen, müssen Sie das lastLogonAttribut von allen Domänencontrollern abfragen . Wenn eine Toleranz von ± 19 Tagen akzeptabel ist, können Sie einfach lastLogonTimestampvom nächstgelegenen Domänencontroller lesen .


lastLogon

Dieses Attribut wird nicht repliziert und auf jedem Domänencontroller in der Domäne separat verwaltet. Um einen genauen Wert für die letzte Anmeldung des Benutzers in der Domäne zu erhalten, muss das Attribut "Letzte Anmeldung" für den Benutzer von jedem Domänencontroller in der Domäne abgerufen werden. Der größte Wert, der abgerufen wird, ist die tatsächliche letzte Anmeldezeit für diesen Benutzer.

https://docs.microsoft.com/en-us/windows/desktop/adschema/a-lastlogon#remarks


lastLogonTimestamp

Immer wenn sich ein Benutzer anmeldet, wird der Wert dieses Attributs aus dem DC gelesen. Wenn der Wert älter ist [current_time - msDS-LogonTimeSyncInterval], wird der Wert aktualisiert. Die erste Aktualisierung nach der Erhöhung der Domänenfunktionsebene wird mit 14 Tagen abzüglich eines zufälligen Prozentsatzes von 5 Tagen berechnet.

https://docs.microsoft.com/en-us/windows/desktop/adschema/a-lastlogontimestamp


Anmerkungen:

  1. Beide Daten werden als FILETIME( Int64in .Net / PowerShell) gespeichert, wenn Sie sie programmgesteuert abrufen.
  2. PowerShell bietet auch eine LastLogonDateEigenschaft. Ich hätte es vorgezogen, Microsoft-spezifische Dokumentation bereitzustellen, um dies zu bestätigen, aber die meisten Quellen sagen und meine Tests bestätigen, dass es sich um die lastLogonTimestampKonvertierung in einen l̲o̲c̲a̲l̲- DateTimeWert handelt.
Drew Chapin
quelle