lastLogon vs lastLogonTimestamp dans Active Directory

9

Un employé a quitté l'entreprise. J'essaie de savoir quand son compte AD a été connecté pour la dernière fois - si c'était avant le licenciement ou après.

Il y a ces 2 attributs dans la fenêtre des propriétés de l'utilisateur: lastLogon et lastLogonTimestamp . La date lastLogon est antérieure à la date de licenciement, mais la date lastLogonTimestamp est postérieure à la date de licenciement (dans ce cas, nous aurions un problème de sécurité).

Comment savoir lequel de ces attributs indique l'heure de connexion réelle du dernier compte AD? Quelle est la différence entre eux?

propriétés utilisateur - éditeur d'attributs

ZygD
la source

Réponses:

6

TL; DR - Si vous voulez l'heure d'ouverture de session la plus précise, vous devez interroger l' lastLogonattribut de tous les contrôleurs de domaine. Si une tolérance de ± 19 jours est acceptable, vous pouvez simplement lire à lastLogonTimestamppartir du contrôleur de domaine le plus proche.


lastLogon

Cet attribut n'est pas répliqué et est géré séparément sur chaque contrôleur de domaine du domaine. Pour obtenir une valeur précise pour la dernière connexion de l'utilisateur dans le domaine, l'attribut Last-Logon pour l'utilisateur doit être récupéré de chaque contrôleur de domaine du domaine. La valeur la plus élevée récupérée est la vraie dernière heure de connexion pour cet utilisateur.

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


lastLogonTimestamp

Chaque fois qu'un utilisateur ouvre une session, la valeur de cet attribut est lue à partir du contrôleur de domaine. Si la valeur est plus ancienne [current_time - msDS-LogonTimeSyncInterval], la valeur est mise à jour. La mise à jour initiale après l'augmentation du niveau fonctionnel du domaine est calculée comme 14 jours moins un pourcentage aléatoire de 5 jours.

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


Remarques:

  1. Les deux dates sont stockées en tant que FILETIME( Int64dans .Net / PowerShell) si vous les récupérez par programme.
  2. PowerShell fournit également une LastLogonDatepropriété. J'aurais préféré fournir une documentation spécifique à Microsoft pour le confirmer, mais la plupart des sources disent et mes tests confirment qu'il s'agit de la valeur lastLogonTimestampconvertie en l̲o̲c̲a̲l̲ DateTime.
Drew Chapin
la source