TL; DR - Se você quiser o tempo de logon mais preciso, deverá consultar o lastLogon
atributo em todos os controladores de domínio. Se uma tolerância de ± 19 dias for aceitável, basta ler lastLogonTimestamp
no controlador de domínio mais próximo.
lastLogon
Este atributo não é replicado e é mantido separadamente em cada controlador de domínio no domínio. Para obter um valor exato para o último logon do usuário no domínio, o atributo Last-Logon do usuário deve ser recuperado de todos os controladores de domínio do domínio. O maior valor recuperado é o verdadeiro horário do último logon para esse usuário.
https://docs.microsoft.com/en-us/windows/desktop/adschema/a-lastlogon#remarks
lastLogonTimestamp
Sempre que um usuário faz logon, o valor desse atributo é lido no controlador de domínio. Se o valor for mais antigo [current_time - msDS-LogonTimeSyncInterval
], o valor será atualizado. A atualização inicial após o aumento do nível funcional do domínio é calculada como 14 dias menos a porcentagem aleatória de 5 dias.
https://docs.microsoft.com/en-us/windows/desktop/adschema/a-lastlogontimestamp
Notas:
- Ambas as datas são armazenadas como
FILETIME
( Int64
em .Net / PowerShell) se você as recuperar programaticamente.
- O PowerShell também fornece uma
LastLogonDate
propriedade. Eu preferiria fornecer documentação específica da Microsoft para confirmar isso, mas a maioria das fontes afirma e meus testes confirmam que é lastLogonTimestamp
convertido para um DateTime
valor de l̲o̲c̲a̲l̲ .