Сотрудник покинул компанию. Я пытаюсь узнать, когда его учетная запись AD входила в последний раз - до увольнения или после.
В окне свойств пользователя есть два атрибута: lastLogon и lastLogonTimestamp. lastLogon дата раньше даты увольнения, но lastLogonTimestamp дата предшествует дате увольнения (так что в этом случае у нас возникнет проблема с безопасностью).
Как узнать, какой из этих атрибутов показывает фактическое время последнего входа в учетную запись AD? В чем разница между ними?
Используйте самый последний атрибут.
Lastlogon обновляется только на контроллере домена, который выполняет проверку подлинности, и не реплицируется.
LastLogontimestamp реплицируется, но по умолчанию только в том случае, если он старше предыдущего значения на 14 дней или более.
TL; DR - Если вы хотите наиболее точное время входа в систему, вы должны запросить lastLogon
атрибут со всех контроллеров домена. Если допуск ± 19 дней приемлем, то вы можете просто прочитать lastLogonTimestamp
с ближайшего контроллера домена.
Этот атрибут не реплицируется и поддерживается отдельно на каждом контроллере домена в домене. Чтобы получить точное значение для последнего входа пользователя в домен, атрибут Last-Logon для пользователя должен быть получен с каждого контроллера домена в домене. Наибольшее извлекаемое значение - это истинное время последнего входа в систему для этого пользователя.
https://docs.microsoft.com/en-us/windows/desktop/adschema/a-lastlogon#remarks
Каждый раз, когда пользователь входит в систему, значение этого атрибута считывается с контроллера домена. Если значение старше [current_time -
msDS-LogonTimeSyncInterval
], значение обновляется. Первоначальное обновление после повышения функционального уровня домена рассчитывается как 14 дней минус случайный процент из 5 дней.
https://docs.microsoft.com/en-us/windows/desktop/adschema/a-lastlogontimestamp
FILETIME
(Int64
в .Net / PowerShell), если вы извлекаете их программно. LastLogonDate
свойство. Я бы предпочел предоставить конкретную документацию Microsoft, чтобы подтвердить это, но большинство источников говорят, и мое тестирование подтверждает, что это lastLogonTimestamp
преобразованный в lo̲c̲a̲l̲ DateTime
стоимость.