Cómo obtener todos los usuarios activos en Active Directory usando PowerShell

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.

Obtener todos los usuarios activos en AD

La siguiente tabla enumera los pasos para obtener todos los usuarios activos de AD mediante PowerShell y ADManager Plus:

Windows PowerShell

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 ActiveDirectory

Uso 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
ADManager Plus
  1. Inicie sesión en ADManager Plus y vaya a Informes > Informes de usuario.
  2. En Informes de inicio de sesión, haga clic en Usuarios habilitados.
  3. Seleccione el dominio o dominios deseados y haga clic en Generar.

Ejemplos de casos de uso y scripts PowerShell para obtener usuarios activos

Ejemplo 1: Obtener todos los usuarios activos de AD

Get-ADUser -Filter 'Enabled -eq $True'

Ejemplo 2: Obtener los usuarios activos de AD con la última fecha de inicio de sesión

Get-ADUser -Filter {Enabled -eq $true} -Properties DisplayName, LastLogonDate |
Select-Object Name, DisplayName, LastLogonDate |
Sort-Object LastLogonDate -Descending

Ejemplo 3: Obtener todos los usuarios activos de AD en una OU específica

Get-ADUser -Filter {Enabled -eq $True} -SearchBase "OU=Sales,DC=domain,DC=com" -Properties DisplayName, EmailAddress |
Select-Object Name, DisplayName, EmailAddress

Ejemplo 4: Exportar los usuarios activos de AD a CSV

Get-ADUser -Filter {Enabled -eq $True} -Properties SamAccountName, EmailAddress |
Select-Object SamAccountName, EmailAddress |
Export-Csv -Path "EnabledUsers.csv" -NoTypeInformation

Parámetros compatibles

Los siguientes son parámetros esenciales que se pueden utilizar para enumerar usuarios activos de AD:

ColumnaDescripción
-FilterEspecifica un hilo de filtro en formato de expresión PowerShell para limitar qué objetos de usuario se devuelven.
-PropertiesEspecifica las propiedades adicionales de AD que se recuperarán además del conjunto predeterminado, como DisplayName y EmailAddress.
-IdentityComprueba un usuario específico por nombre de usuario o SamAccountName.
-Export-CsvSe utiliza para exportar el informe a un archivo CSV (no es un parámetro del cmdlet, pero se utiliza en la canalización).
-PathRuta del archivo de salida para el informe exportado.

Consejos para solucionar problemas

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:

1. Get-ADUser: No se reconoce el término

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 ActiveDirectory

2. Falta LastLogonDate u otras propiedades

Causa: 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 LastLogonDate

3. Permiso denegado o acceso denegado

Causa: Su sesión de PowerShell no tiene los permisos adecuados.

Solución: Ejecute PowerShell como administrador.

4. Resultados vacíos devueltos

Causa: Filtro con errores de configuración u OU incorrecta especificada.

Solución:

  • Compruebe la sintaxis del filtro.
  • Garantice que la ruta de la OU es correcta.
  • Compruebe que hay usuarios activos en la OU especificada.

Limitaciones del uso de scripts PowerShell para obtener usuarios activos

Aunque es potente, depender únicamente de PowerShell para la elaboración de informes exhaustivos sobre los usuarios puede plantear retos:

  • Complejidad para los no expertos en scripts: La creación y depuración de scripts complejos puede llevar mucho tiempo a los administradores menos familiarizados con PowerShell.
  • Falta de informes centralizados: La generación de informes PowerShell completos para varios atributos de AD a menudo requiere la combinación de múltiples scripts y la consolidación manual de datos.
  • Gestión de errores: Cada script debe incorporar explícitamente una gestión de errores robusta.

Ventajas de elegir ADManager Plus en lugar de PowerShell

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:

  • No se requieren scripts: Genere fácilmente informes sobre usuarios activos, usuarios inactivos, usuarios bloqueados y mucho más en unos pocos clics sin necesidad de scripts.
  • Informes predefinidos: Acceda a más de 200 informes out-of-the-box que le ahorrarán mucho tiempo.
  • Informes personalizables: Cree informes hechos a la medida con atributos y filtros específicos para satisfacer sus necesidades exclusivas de auditoría y cumplimiento.
  • Programación automática de informes:Programe informes para que se generen y envíen automáticamente a su bandeja de entrada, garantizando que siempre disponga de información actualizada.
  • Informes delegados: Delegue de forma segura las tareas de generación de informes de AD a los técnicos de la mesa de ayuda sin exponerlos a datos confidenciales ni a complejos scripts de PowerShell.

Obtenga hoy su lista de usuarios activos de AD

PREGUNTAS FRECUENTES

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.

Para una gestión de activos fácil y efectiva en la que confían las siguientes empresas

La solución integral para la gestión y generación de informes de Active Directory