El administrador de Active Directory debe buscar y deshabilitar periódicamente los objetos inactivos en AD. En este artículo, mostraremos cómo obtener la última hora de inicio de sesión para el usuario de dominio de AD y encontrar cuentas que han estado inactivas durante más de 90 días.

¿Cómo obtener la última hora de inicio de sesión de un usuario usando ADUC?

Puede averiguar la última hora de inicio de sesión del usuario del dominio con la consola gráfica de ADUC (Usuarios y equipos de Active Directory).

  1. Ejecute la consola dsa.msc;
  2. En el menú superior, habilite la opción Ver> Funciones avanzadas;
  3. Busque al usuario en el árbol de AD y abra sus propiedades;
  4. Haga clic en la pestaña Editor de atributos;
  5. En la lista de atributos, busque lastLogon. Este atributo contiene la hora en que el usuario inició sesión por última vez en el dominio.
    último inicio de sesión de la computadora del directorio activo

Nota. Puede ver dos atributos similares en la captura de pantalla anterior: lastLogon y lastLogonTimestamp. ¿Cual es la diferencia entre ellos?

  • lastLogon El atributo se actualiza cuando el usuario inicia sesión en el dominio. Pero solo cambia en el controlador de dominio que autenticó al usuario, y es no replicado a otros controladores de dominio. Por lo tanto, si hay varios controladores de dominio en diferentes sitios de AD, deberá verificar este atributo en cada uno de ellos y luego comparar los datos resultantes. El valor de este atributo en diferentes DC para el usuario puede ser diferente o incluso cero (si el usuario nunca ha sido autenticado en este DC);
  • lastLogonTimeStamp El atributo también se cambia cuando el usuario inicia sesión en el controlador de dominio y se replica en otros controladores de dominio. Sin embargo, la replicación de este atributo lleva mucho tiempo (este atributo se replica solo si su valor es de 14 días o más que el anterior). Por lo tanto, los datos de este atributo en un DC específico pueden no ser relevantes.

Encuentra la última hora de inicio de sesión usando CMD

Puede averiguar la hora en que el usuario inició sesión por última vez en el dominio desde la línea de comandos utilizando las herramientas net o dsquery.

Abra un símbolo del sistema (no necesita privilegios de administrador de dominio para obtener información de usuario de AD) y ejecute el comando:

net user administrator /domain| findstr "Last"

Obtuvo la última hora de inicio de sesión del usuario: 08.08.2019 11:14:13.

último inicio de sesión directorio activo de la computadora

También puede obtener la última hora de inicio de sesión mediante dsquery. Por ejemplo:

dsquery * domainroot -filter "(&(objectCategory=Person)(objectClass=User)(sAMAccountName=administrator))" -attr distinguishedName lastLogon lastLogonTimestamp -limit 0

El principal problema es que los atributos lastLogon y lastLogonTimestamp se almacenan en formato de marca de tiempo en AD y, además, debe convertirlo a un formato de hora normal.

get-aduser último equipo de inicio de sesión

También puede utilizar este comando para buscar a todos los usuarios que están inactivos, por ejemplo, durante 10 semanas:

dsquery user domainroot -inactive 10

Buscar la hora del último inicio de sesión con PowerShell

También puede usar PowerShell para obtener la hora de inicio de sesión del último dominio del usuario. Para ello, debe utilizar el módulo de Active Directory para Windows PowerShell. Instale este módulo e impórtelo en su sesión de PowerShell:

Import-Module ActiveDirectory

Para encontrar la última hora de inicio de sesión para la cuenta de administrador de dominio, ejecute el comando:

Get-ADUser -Identity administrator -Properties LastLogon

El cmdlet devolvió la hora en formato de marca de tiempo. Para convertirlo a una hora normal, use el siguiente comando:

Get-ADUser -Filter {Name -eq "administrator"} -Properties * | Select-Object Name, @{N='LastLogon'; E={[DateTime]::FromFileTime($_.LastLogon)}}

PowerShell último inicio de sesión computadora

Con PowerShell, puede mostrar la última hora de inicio de sesión para todos los usuarios de dominio habilitados:

Get-ADUser -filter {enabled -eq $true} -Properties * | Select-Object Name, @{N='LastLogon'; E={[DateTime]::FromFileTime($_.LastLogon)}}|Sort-Object LastLogon -Descending

secuencia de comandos de powershell para obtener el último usuario de inicio de sesión en la computadora

O puede encontrar usuarios que estén inactivos durante más de 90 días:

$date1= (Get-Date).AddDays(-90)

Get-ADUser -Properties LastLogonDate -Filter {LastLogonDate -lt $date1} | ft

Después de identificar las cuentas inactivas, le recomendamos que desactive las cuentas de esos usuarios, espere unas semanas y luego elimine las cuentas si no se han reportado problemas. Puede deshabilitar a los usuarios inactivos mediante el cmdlet Disable-ADAccount:

Get-ADUser -Properties LastLogonDate -Filter {LastLogonDate -lt $date1} | Disable-ADAccount

De manera similar, puede obtener la última hora de inicio de sesión para objetos de computadora en un dominio. El siguiente comando enumerará todas las computadoras que han estado inactivas durante más de 90 días:

Get-ADComputer  -Properties LastLogonDate -Filter {LastLogonDate -lt $date1} | Sort LastLogonDate | FT Name, LastLogonDate -Autosize

Insinuación. Puede obtener el historial de inicio de sesión de usuario detallado solo a partir de los registros de eventos de seguridad de los controladores de dominio.

Obtener el último inicio de sesión para el usuario en todos los controladores de dominio

Como dijimos anteriormente, si hay varios controladores de dominio en su dominio, entonces el valor del último inicio de sesión en ellos puede diferir. Si un usuario ha estado inactivo durante más de 14 días, la forma más sencilla es obtener el valor del atributo lastLogonTimeStamp de cualquier controlador de dominio. Sin embargo, si no sabe en qué sitio o DC se autenticó por última vez al usuario, tendrá que consultar todos los controladores de dominio en el AD para obtener la fecha del último inicio de sesión del usuario.

El siguiente script de PowerShell recorre todos los controladores de dominio del dominio y obtiene el valor del atributo lastLogonTime de cada uno de ellos. El resultado se exporta a un archivo CSV:

$userlogonname="bjackson"

$csvoutputfile="c:pslastlogon_from_all_dcs.csv"

[email protected]()

Import-Module ActiveDirectory

$DCs=(Get-ADDomainController -Filter *).Name

 foreach ($DC in $DCs) {

 Try {

$aduser=Get-ADUser $userlogonname -Server $DC -Properties lastlogon -ErrorAction Stop

     $resultlogonhistory +=New-Object -TypeName PSObject -Property ([ordered]@{

    'User' = $userlogonname

    'DC' = $dc

    'LastLogon' = [datetime]::FromFileTime($aduser.'lastLogon')

})

}

Catch {

Write-host "Can’t connect DC $($dc)!"

}

}

$resultlogonhistory|Export-CSV -path $csvoutputfile -NoTypeInformation -Delimiter "," -Encoding UTF8

último usuario de inicio de sesión de la computadora del directorio activo

Si necesita encontrar rápidamente el valor máximo de LastLogon del usuario de todos los DC, utilice la siguiente frase:

[datetime]::FromFileTime((Get-ADDomainController -Filter * | foreach {Get-ADUser 'bjackson' -Properties LastLogon -Server $_.Name | select LastLogon} | Measure-Object -Property LastLogon -Maximum).Maximum)

Recomendado para ti

Bestseller No. 1
Hp Elite 8300 - Ordenador de sobremesa + Monitor 24'' (Intel Core i7-3770, 8GB de RAM, Disco de 240 SSD+ 500GB HDD, Lector DVD, WiFi,Windows 10 Pro 64) (Reacondicionado)
  • Procesador Intel Core i7-3770 - 3,40 GHz
  • Monitor 24" Reacondicionado con altavoces integrados, Estado excelente.
  • Almacenamiento de 240GB SSD+500GB HDD
  • Memoria RAM 8GB DDR3
  • Sistema Operativo: Windows 10 PRO
Bestseller No. 2
The Office
  • Amazon Prime Video (Video on Demand)
  • Steve Carell, Rainn Wilson, John Krasinski (Actors)
  • Bryan Gordon (Director)
Bestseller No. 3
El catcher espía
  • Amazon Prime Video (Video on Demand)
  • Paul Rudd, Jeff Daniels, Sienna Miller (Actors)
  • Ben Lewin (Director)