TL; DR : si desea el tiempo de inicio de sesión más preciso, debe consultar el lastLogonatributo desde todos los controladores de dominio. Si una tolerancia de ± 19 días es aceptable, puede leer lastLogonTimestampdesde el controlador de dominio más cercano.
lastLogon
Este atributo no se replica y se mantiene por separado en cada controlador de dominio en el dominio. Para obtener un valor preciso para el último inicio de sesión del usuario en el dominio, el atributo Último inicio de sesión para el usuario debe recuperarse de cada controlador de dominio en el dominio. El valor más grande que se recupera es el último tiempo de inicio de sesión verdadero para ese usuario.
https://docs.microsoft.com/en-us/windows/desktop/adschema/a-lastlogon#remarks
lastLogonTimestamp
Cada vez que un usuario inicia sesión, el valor de este atributo se lee del DC. Si el valor es anterior [current_time - msDS-LogonTimeSyncInterval], el valor se actualiza. La actualización inicial después del aumento del nivel funcional del dominio se calcula como 14 días menos el porcentaje aleatorio de 5 días.
https://docs.microsoft.com/en-us/windows/desktop/adschema/a-lastlogontimestamp
Notas:
- Ambas fechas se almacenan como
FILETIME( Int64en .Net / PowerShell) si las recupera mediante programación.
- PowerShell también proporciona una
LastLogonDatepropiedad. Hubiera preferido proporcionar documentación específica de Microsoft para confirmar esto, pero la mayoría de las fuentes lo dicen y mis pruebas confirman que es el valor lastLogonTimestampconvertido a l̲o̲c̲a̲l̲ DateTime.