3.8K
La última vez que un usuario o computadora inició sesión en un dominio almacenado en atributos de objeto de Active Directory. Para averiguar la hora del último inicio de sesión para cuentas de computadora o de usuario de AD, existen varias herramientas que un administrador puede usar.
Cómo verificar la fecha del último inicio de sesión del usuario/computadora en Active Directory
Cuando un usuario o computadora inicia sesión en un dominio, la hora de inicio de sesión se escribe en el último inicio de sesión y lastLogonTimestamp atributos del objeto AD correspondiente. ¿Cuáles son las diferencias entre estos atributos?
- El último inicio de sesión El valor del atributo se actualiza cuando la cuenta inicia sesión interactivamente en AD en el controlador de dominio utilizado para la autenticación (%logonserver%). No se replica entre controladores de dominio, lo que significa que cada controlador de dominio puede tener un valor diferente para este atributo.
- El lastLogonTimestamp El atributo es un análogo del atributo lastLogon, pero a diferencia de lastLogon, se replica en otros controladores de dominio en AD. Para minimizar el tráfico de replicación en AD, el valor de este atributo se replica por hasta 14 días.
Esto significa que para obtener información en tiempo real sobre cuándo una cuenta inició sesión por última vez en AD, debe obtener la último inicio de sesión valor del atributo. Sin embargo, esto requiere que consulte todos los controladores de dominio del bosque.
Si considera aceptable una tolerancia de ±19 días, simplemente puede obtener el lastLogonTimestamp del controlador de dominio más cercano. Por lo tanto, en la mayoría de los casos, el lastLogonTimestamp El atributo se utiliza para determinar la hora del último inicio de sesión del usuario, lo que proporciona una actividad de inicio de sesión algo desactualizada pero consistente en todos los controladores de dominio.
Puede utilizar el complemento Usuarios y computadoras de Active Directory (ADUC) (requiere instalación de RSAT) para verificar la última vez que un usuario o computadora inició sesión.
- Prensa GANAR+R y correr dsa.msc para abrir la consola ADUC
- Hacer clic Ver → Funciones avanzadas. Este paso permite al Editor de atributos pestaña en ADUC.
- Localice el usuario o computadora y abra sus propiedades.
- Ir al Editor de atributos pestaña y busque el último inicio de sesión y últimoLogOnTimeStamp atributos.
Obtenga la fecha y hora del último inicio de sesión de un usuario o computadora de AD usando PowerShell
Es más conveniente utilizar PowerShell para obtener la hora del último inicio de sesión del usuario en el dominio. Para eso, use el cmdlet Get-ADUser del módulo PowerShell Active Directory.
Por ejemplo, para averiguar la hora del último inicio de sesión de una cuenta de usuario de dominio específica:
Get-ADUser -Identity ebrown -Properties LastLogon, LastLogonTimestamp
Para convertir el valor de lastlogon del formato de marca de tiempo a un formato legible por humanos, use el siguiente comando:
Get-ADUser -Identity ebrown -Properties LastLogon, LastLogonTimestamp | Select-Object SamAccountName, Name, @{n = 'LastLogon'; e = { [DateTime]::FromFileTime($_.LastLogon) } }, @{n = 'LastLogonTimeStamp'; e = { [DateTime]::FromFileTime($_.LastLogonTimeStamp) } }
Nota. El valor de lastlogontimestamp estará vacío si el usuario o la computadora nunca ha iniciado sesión en el dominio AD. El valor de LastLogon para dicha cuenta es siempre 31/12/1600 4:00:00 p.m.
Para ver la hora del último inicio de sesión para una computadora del dominio, cambie el cmdlet a Obtener-ADComputadora.
Get-ADComputer -Identity DB1 -Properties LastLogonTimestamp | Select-Object SamAccountName, Name, @{n = 'LastLogonTimeStamp'; e = { [DateTime]::FromFileTime($_.LastLogonTimeStamp) } }
Para buscar usuarios inactivos y computadoras que no han iniciado sesión en un dominio durante más de 90 días, use la canalización de PowerShell:
$oldest = (Get-Date).AddDays(-90) Get-ADUser -Filter { LastLogonTimeStamp -lt $oldest } -Properties LastLogonTimestamp | Select-Object SamAccountName, Name, @{n = ‘LastLogonTimeStamp’; e = { [DateTime]::FromFileTime($_.LastLogonTimeStamp) } }
Para obtener la misma información para las computadoras del dominio, reemplace el Obtener-ADUser cmdlet con el Obtener-ADComputadora cmdlet.
Get-ADComputer -Filter { LastLogonTimeStamp -lt $oldest } -Properties LastLogonTimestamp | Select-Object SamAccountName, Name, @{n = 'LastLogonTimeStamp'; e = { [DateTime]::FromFileTime($_.LastLogonTimeStamp) } }
Para consultar todos los DC en AD para obtener la corriente Último inicio de sesión valor para una cuenta específica, utilice el script de PowerShell. Copie el siguiente script y guárdelo como Get-ADUserLastLogOnTime.ps1 en tu computadora. También puedes descargar este script desde este Esencia.
# Get-ADUserLastLogOnTime.ps1 [CmdletBinding()] param ( [Parameter()] [String] $LogonName ) Import-Module ActiveDirectory $DCs = (Get-ADDomainController -Filter *).Name $result = New-Object System.Collections.Generic.List[object] foreach ($dc in $DCs) { # “Querying DC: [$($dc)]” | Out-Default try { if ($aduser = Get-ADUser $LogonName -Server $dc -Properties lastlogon -ErrorAction Stop) { $result.Add( ($aduser | Select-Object SamAccountName, Name, @{n = ‘DC’; e = { $dc } }, @{n = ‘LastLogon’; e = { [DateTime]::FromFileTime($_.LastLogon) } }) ) } } catch { $_.Exception.Message | Out-Default } } return $result
Este script de PowerShell recupera el último inicio de sesión (último inicio de sesión) de una cuenta de usuario de Active Directory (AD) de todos los controladores de dominio. Acepta un parámetro, $Nombre de inicio de sesiónque debería ser el nombre de usuario (SamNombreDeCuenta) del usuario del que desea recuperar la hora del último inicio de sesión.
.\Get-ADUserLastLogOnTime.ps1 -LogonName USERNAME
Pista. También puede utilizar el comando NET USER integrado para encontrar rápidamente la hora del último inicio de sesión de un usuario de dominio:
net user ebrown /domain| findstr "Last"