web-dev-qa-db-fra.com

lastLogon vs lastLogonTimestamp dans Active Directory

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?

user properties - attribute editor

8
ZygD

Utilisez l'attribut le plus récent.

Lastlogon est uniquement mis à jour sur le contrôleur de domaine qui effectue l'authentification et n'est pas répliqué.

LastLogontimestamp est répliqué, mais par défaut uniquement s'il est 14 jours ou plus ancien que la valeur précédente.

http://social.technet.Microsoft.com/wiki/contents/articles/22461.understanding-the-ad-account-attributes-lastlogon-lastlogontimestamp-and-lastlogondate.aspx

11
Greg Askew

TL; DR - Si vous voulez l'heure d'ouverture de session la plus précise, vous devez interroger l'attribut lastLogon de tous les contrôleurs de domaine. Si une tolérance de ± 19 jours est acceptable, vous pouvez simplement lire lastLogonTimestamp depuis le 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 plus grande valeur 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 sous la forme d'un FILETIME (Int64 dans .Net/PowerShell) si vous les récupérez par programme.
  2. PowerShell fournit également une propriété LastLogonDate. J'aurais préféré fournir une documentation spécifique à Microsoft pour le confirmer, mais la plupart des sources disent et mes tests confirment que c'est la lastLogonTimestamp convertie en une valeur l̲o̲c̲a̲l̲ DateTime.
4
Drew Chapin