Saber identificar las cuentas de usuario activas es crucial para las auditorías de seguridad, la gestión de licencias y para garantizar un funcionamiento sin inconvenientes. Aunque la mayoría de los administradores utilizan PowerShell para lograrlo, puede llevar mucho tiempo y ser complejo. Por otro lado, ADManager Plus, una herramienta de generación de informes de Active Directory (AD), permite a los administradores obtener un informe de todos los usuarios activos de AD con solo unos clics.
La siguiente tabla enumera los pasos para obtener todos los usuarios activos de AD mediante PowerShell y ADManager Plus:
Requisito previo
Garantice que el módulo de AD está instalado. Si no es así, descargue el paquete RSAT correcto para su sistema operativo y ejecute el siguiente comando para activar el módulo.
Import-Module ActiveDirectoryUso de Get-ADUser para filtrar usuarios activos
Ejecute el siguiente script para obtener los usuarios activos de AD. Esto utiliza el cmdlet Get-ADUser con un filtro para encontrar solo las cuentas en las que la propiedad Habilitado (Enabled) tiene el valor $True.
Get-ADUser -Filter {Enabled -eq $True} -Properties DisplayName, EmailAddress
Get-ADUser -Filter 'Enabled -eq $True'Get-ADUser -Filter {Enabled -eq $true} -Properties DisplayName, LastLogonDate |
Select-Object Name, DisplayName, LastLogonDate |
Sort-Object LastLogonDate -DescendingGet-ADUser -Filter {Enabled -eq $True} -SearchBase "OU=Sales,DC=domain,DC=com" -Properties DisplayName, EmailAddress |
Select-Object Name, DisplayName, EmailAddressGet-ADUser -Filter {Enabled -eq $True} -Properties SamAccountName, EmailAddress |
Select-Object SamAccountName, EmailAddress |
Export-Csv -Path "EnabledUsers.csv" -NoTypeInformationLos siguientes son parámetros esenciales que se pueden utilizar para enumerar usuarios activos de AD:
| Columna | Descripción |
|---|---|
| -Filter | Especifica un hilo de filtro en formato de expresión PowerShell para limitar qué objetos de usuario se devuelven. |
| -Properties | Especifica las propiedades adicionales de AD que se recuperarán además del conjunto predeterminado, como DisplayName y EmailAddress. |
| -Identity | Comprueba un usuario específico por nombre de usuario o SamAccountName. |
| -Export-Csv | Se utiliza para exportar el informe a un archivo CSV (no es un parámetro del cmdlet, pero se utiliza en la canalización). |
| -Path | Ruta del archivo de salida para el informe exportado. |
Incluso con los comandos adecuados, obtener datos de los usuarios activos mediante PowerShell puede dar lugar ocasionalmente a errores o resultados incompletos. He aquí algunos problemas comunes y cómo resolverlos:
Causa: El módulo de AD no está instalado o importado.
Solución: Garantice que está ejecutando PowerShell en un sistema que tiene RSAT: herramientas de AD instaladas. Importe el módulo manualmente ejecutando el siguiente comando:
Import-Module ActiveDirectoryCausa: Algunas propiedades como LastLogonDate no están incluidas de forma predeterminada.
Solución: Siempre especifique las propiedades requeridas explícitamente usando el parámetro -Properties como se indica a continuación:
Get-ADUser -Filter {Enabled -eq $true} -Properties LastLogonDateCausa: Su sesión de PowerShell no tiene los permisos adecuados.
Solución: Ejecute PowerShell como administrador.
Causa: Filtro con errores de configuración u OU incorrecta especificada.
Solución:
Aunque es potente, depender únicamente de PowerShell para la elaboración de informes exhaustivos sobre los usuarios puede plantear retos:
ADManager Plus tiende un puente entre los potentes informes de AD y la facilidad de uso. He aquí por qué es la mejor opción para muchos equipos de TI:
Para encontrar usuarios que hayan iniciado sesión en los últimos 90 días, puede utilizar el cmdlet Get-ADUser en PowerShell y filtrar en función del atributo lastLogonTimestamp:
$NinetyDaysAgo = (Get-Date).AddDays(-90)
Get-ADUser -Filter {lastLogonTimestamp -ge $NinetyDaysAgo.ToFileTime()} -Properties Name, lastLogonTimestamp |
Select-Object Name, @{Name="LastLogon"; Expression={[datetime]::FromFileTime($_.lastLogonTimestamp)}}Alternativamente, puede utilizar ADManager Plus para generar rápidamente informes de inicio de sesión de AD que muestren los usuarios que han iniciado sesión dentro del periodo de tiempo especificado.