Назад | Перейти на главную страницу

lastLogon против lastLogonTimestamp в Active Directory

Сотрудник покинул компанию. Я пытаюсь узнать, когда его учетная запись AD входила в последний раз - до увольнения или после.

В окне свойств пользователя есть два атрибута: lastLogon и lastLogonTimestamp. lastLogon дата раньше даты увольнения, но lastLogonTimestamp дата предшествует дате увольнения (так что в этом случае у нас возникнет проблема с безопасностью).

Как узнать, какой из этих атрибутов показывает фактическое время последнего входа в учетную запись AD? В чем разница между ними?

Используйте самый последний атрибут.

Lastlogon обновляется только на контроллере домена, который выполняет проверку подлинности, и не реплицируется.

LastLogontimestamp реплицируется, но по умолчанию только в том случае, если он старше предыдущего значения на 14 дней или более.

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

TL; DR - Если вы хотите наиболее точное время входа в систему, вы должны запросить lastLogon атрибут со всех контроллеров домена. Если допуск ± 19 дней приемлем, то вы можете просто прочитать lastLogonTimestamp с ближайшего контроллера домена.


lastLogon

Этот атрибут не реплицируется и поддерживается отдельно на каждом контроллере домена в домене. Чтобы получить точное значение для последнего входа пользователя в домен, атрибут Last-Logon для пользователя должен быть получен с каждого контроллера домена в домене. Наибольшее извлекаемое значение - это истинное время последнего входа в систему для этого пользователя.

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


lastLogonTimestamp

Каждый раз, когда пользователь входит в систему, значение этого атрибута считывается с контроллера домена. Если значение старше [current_time - msDS-LogonTimeSyncInterval ], значение обновляется. Первоначальное обновление после повышения функционального уровня домена рассчитывается как 14 дней минус случайный процент из 5 дней.

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


Ноты:

  1. Обе даты хранятся как FILETIME (Int64 в .Net / PowerShell), если вы извлекаете их программно.
  2. PowerShell также предоставляет LastLogonDate свойство. Я бы предпочел предоставить конкретную документацию Microsoft, чтобы подтвердить это, но большинство источников говорят, и мое тестирование подтверждает, что это lastLogonTimestamp преобразованный в lo̲c̲a̲l̲ DateTime стоимость.