¿Cómo extraer miembros del grupo de Active Directory y exportarlo a un archivo CSV? – 2xsoftware

En este artículo, veremos algunos ejemplos del uso de PowerShell para extraer miembros de grupos de diferentes grupos de Active Directory. Este artículo debería enseñarle cómo crear una lista de cuentas en un grupo específico de Active Directory y exportarlo a un archivo CSV, que es conveniente para procesar en MS Excel y otros programas de Office.

Herramientas para enumerar los miembros del grupo de anuncios

Anteriormente, para crear una lista de usuarios en el grupo de Active Directory, tenía que usar secuencias de comandos VBS o utilidades de línea de comandos DSQuery o CSVDE, que no eran lo suficientemente flexibles y convenientes.

Para interactuar con Active Directory desde PowerShell, Microsoft desarrolló un módulo especial: el módulo PowerShell Active Directory. Por primera vez este módulo apareció en Windows Server 2008 R2 y para usarlo primero debe cargarlo en su sesión de PowerShell:

Import-Module ActiveDirectory

En Windows Server 2012/R2/Windows Server 2016, este módulo se instala y carga automáticamente cuando la función ADDS (Servicios de dominio de Active Directory) se instala en el servidor cuando el servidor se promueve a un controlador de dominio.

En los sistemas operativos de escritorio (Windows 10/Windows 7), el Módulo de Active Directory para Windows PowerShell se incluye en las Herramientas de administración remota del servidor, que debe descargar, instalar y habilitar por separado.

cómo exportar la lista de usuarios desde el directorio activo powershell

Tenga en cuenta que para usar el módulo de Active Directory, no necesita ser miembro del grupo de administradores de dominio, cualquier usuario de dominio autenticado puede obtener información sobre los usuarios y grupos de Active Directory usando el módulo AD PowerShell.

Uso del cmdlet Get-ADGroupMember

Para obtener información sobre la pertenencia a grupos de AD, use el cmdlet Get-ADGroupMember.

Por ejemplo, para mostrar la lista de miembros del grupo Administradores de dominio, ejecute el siguiente comando:

Get-ADGroupMember ‘Domain Admins’

powershell exporta la membresía del grupo de usuarios a csv

Visualización de la lista completa de grupos en Active Directory

Si no sabe el nombre exacto del grupo, puede mostrar la lista completa de grupos en Active Directory usando el comando:

Get-ADGgroup -filter * | sort name | select Name

Puede mostrar solo nombres de usuario:

Get-ADGroupMember -Identity ‘Domain Admins’| ft name

powershell exportar grupos de anuncios y miembros a csv

Obtener membresías de grupos anidados

Si el grupo especificado contiene otros grupos de Active Directory, debe utilizar el recursivo parámetro para enumerar los miembros de Active Directory en función de los grupos anidados.

Get-ADGroupMember -Identity ‘Domain Admins’ -Recursive | ft name

El modificador -recursivo le indica al comando Get-ADGroupMember que analice cada grupo anidado y muestre solo los objetos que no son contenedores (usuario o computadora). Este comando mostrará incluso aquellos usuarios que no pertenecen directamente al grupo especificado.

Obtener información detallada del grupo de Active Directory

Puede mostrar información más detallada sobre los miembros del grupo de Active Directory:

Get-ADGroupMember -Identity ‘Domain Admins’ | foreach { Get-ADUser $_ -Properties * }

Puede usar el comando PowerShell más complejo, que le permite enumerar todos los miembros de un determinado grupo de seguridad de dominio con información sobre la empresa, el departamento y el puesto, seguido de la clasificación y agrupación según el atributo específico (empresa):

Get-ADGroupMember -Recursive ‘Domain Admins’ | ForEach {

Get-ADUser -filter {samaccountname -eq $_.SamAccountName}  -Properties displayName, company, title, department

}  | Sort-Object company,displayName | Format-Table displayName,company,department,title -GroupBy company -AutoSize

exportar usuarios de anuncios a csv

Extraiga los miembros del grupo de Active Directory y expórtelos a un archivo CSV

Para exportar la pertenencia a un grupo de Active Directory a un archivo de texto, agregue el siguiente comando:

| Out-File -Width 5000 "C:PSADGroupUsersByCompany.txt"

Para exportar la lista al CSV csv, agregue la siguiente canalización:

| Export-Csv -NoTypeInformation .ADGroupUsersByCompany.csv -Encoding Unicode

Puede calcular el número total de usuarios en un grupo:

(Get-ADGroupMember -Identity Administrators).Count

Aquí hay otro ejemplo útil. Intentemos encontrar todos los grupos de AD que contengan el Administración palabra clave en el nombre y mostrar los usuarios que se agregan en estos grupos. Para mostrar solo objetos únicos, use el argumento -uniq:

Get-ADGroup -filter 'SamAccountName -like "*Admin*"' | Get-ADGroupMember -recursive|Select-Object -uniq

En algunos casos, puede enfrentar un error, que ocurre durante la ejecución del comando Get-ADGroupMember:

Get-ADGroupMember: el atributo o valor del servicio de directorio especificado no existe

Esto significa que el grupo incluye usuarios de otros bosques (principales de seguridad extranjeros). El cmdlet Get-ADGroupMember no admite trabajar con usuarios de diferentes bosques en Active Directory.

Errores comunes y resolución de problemas

Puede encontrar varios errores comunes al trabajar con PowerShell y Active Directory. Así es como podría abordarlos:

Error: «El atributo o valor del servicio de directorio especificado no existe» – Este error ocurre cuando el grupo incluye usuarios de otros bosques (principales de seguridad extranjeros). El cmdlet Get-ADGroupMember no admite trabajar con usuarios de diferentes bosques en Active Directory.

En este caso, deberá utilizar métodos alternativos para atraer a estos miembros del grupo o trabajar directamente en el bosque extranjero.

Error: «Get-ADGroupMember: se excedió el límite de tamaño para esta solicitud» – Este error generalmente se produce cuando se usa Get-ADGroupMember en un grupo con más de 5000 miembros. Una posible solución consiste en recuperar todos los usuarios mediante los cmdlets Get-ADGroup y Get-ADUser.

Recuerde, los mensajes de error son sus amigos. Proporcionan información valiosa sobre los problemas y, a menudo, lo orientan en la dirección correcta para resolverlos.

Mejores prácticas

Cuando administre membresías de grupos de Active Directory con PowerShell, tenga en cuenta las siguientes prácticas recomendadas:

  • Privilegios mínimos: Ejecute scripts con los permisos mínimos necesarios para realizar la tarea. Evite usar una cuenta de administrador de dominio para tareas de rutina que se pueden realizar con privilegios más bajos.
  • Usar comentarios: Es importante comentar sus guiones, especialmente cuando comienzan a volverse complejos. Esto le permitirá a usted (oa otra persona) comprender qué está haciendo cada parte del guión cuando lo revise en el futuro.
  • Manejo de errores: Incluya el manejo adecuado de errores en sus scripts. Intente usar los bloques Try/Catch/Finally para manejar correctamente posibles errores y excepciones.
  • Prueba antes de la implementación: Pruebe siempre sus scripts en un entorno controlado que no sea de producción antes de implementarlos en un sistema en vivo.

Técnicas avanzadas

Para aquellos que buscan técnicas más avanzadas, aquí hay algunas formas en que pueden usar PowerShell y Active Directory de manera más efectiva:

Automatización con el Programador de tareas: Puede automatizar la exportación de membresías de grupos al programar su secuencia de comandos de PowerShell para que se ejecute a intervalos específicos usando el Programador de tareas de Windows. Esto es especialmente útil para la auditoría regular de miembros del grupo.

exportar usuarios del directorio activo a csv

Creación de funciones personalizadas: Si usa bloques de código similares repetidamente en sus scripts, considere crear funciones personalizadas. Esto ayuda a reducir la redundancia de código y hace que sus scripts estén más organizados y sean más manejables.

Utilice la comunicación remota de PowerShell: La comunicación remota de PowerShell le permite ejecutar comandos en sistemas remotos. Puede usar esto para interactuar con Active Directory en un controlador de dominio remoto, lo que le permite administrar su Active Directory desde cualquier sistema en su red.

exportar usuarios del directorio activo a csv

Preguntas frecuentes

1. ¿Por qué es importante exportar las pertenencias a grupos de Active Directory a un archivo CSV?

Exportar membresías de grupos particulares a un archivo CSV proporciona una instantánea clara, concisa y editable de las estructuras de su grupo. Esto puede ser esencial para fines de auditoría, resolución de problemas o planificación, y también ofrece una forma de respaldo en caso de que surja la necesidad de restaurar la información.

2. ¿Qué hace el cmdlet de PowerShell ‘Get-ADGroupMember’?

El cmdlet ‘Get-ADGroupMember’ en PowerShell recupera los miembros de un grupo de AD. Puede usarlo para enumerar todos los usuarios, computadoras y subgrupos dentro de un grupo de AD en particular, lo que lo hace invaluable para comprender la composición del grupo.

3. ¿Cómo puedo asegurarme de que mi archivo CSV exportado esté en un formato fácil de usar?

Exportar los datos con encabezados apropiados y datos bien estructurados es el primer paso. El cmdlet ‘Export-Csv’ en PowerShell le permite especificar un delimitador, que puede ayudar a organizar los datos para una fácil interpretación. También es beneficioso elegir un orden lógico para las columnas y limpiar los datos innecesarios antes de exportar.

4. ¿Qué puedo hacer si el cmdlet ‘Get-ADGroupMember’ falla debido a grupos grandes de AD?

Debido a su limitación predeterminada, el cmdlet ‘Get-ADGroupMember’ puede fallar si el grupo tiene más de 5000 miembros. En tales casos, puede usar los cmdlets ‘Get-ADGroup’ y ‘Get-ADUser’ junto con un bucle foreach para obtener todos los miembros de manera confiable.

5. ¿Existen herramientas alternativas a PowerShell para exportar membresías de grupos de AD a un archivo CSV?

Varias herramientas de terceros ofrecen interfaces gráficas fáciles de usar para administrar tareas de AD, incluida la exportación de membresías de grupos a archivos CSV. Herramientas como SolarWinds, ManageEngine ADManager y otras pueden ser útiles si no se siente cómodo con las secuencias de comandos de PowerShell.

6. ¿Qué permisos se requieren para usar el cmdlet Get-ADGroupMember?

Si bien no necesita ser miembro del grupo de administradores de dominio para usar el cmdlet Get-ADGroupMember, necesita ciertos permisos en Active Directory. Cualquier usuario de dominio autenticado puede obtener información sobre los usuarios y grupos de Active Directory mediante el módulo PowerShell de Active Directory (AD). Sin embargo, necesitará los permisos adecuados si necesita realizar cambios o administrar grupos.

7. ¿Cómo puedo usar PowerShell para agregar un usuario a un grupo de AD?

Se puede agregar un usuario a un grupo de AD mediante el cmdlet Add-ADGroupMember. Por ejemplo, para agregar un usuario con el nombre de usuario «jdoe» al grupo «Departamento de TI», usaría el comando Add-ADGroupMember -Identidad ‘Departamento de TI’ -Miembros ‘jdoe’.

8. ¿Por qué falla el comando ‘Get-ADGroupMember’ con grupos grandes de AD?

El cmdlet ‘Get-ADGroupMember’ tiene un límite predeterminado y puede fallar si el grupo tiene más de 5000 miembros. En tales casos, puede usar los cmdlets ‘Get-ADGroup’ y ‘Get-ADUser’ junto con un bucle foreach para obtener todos los miembros de manera confiable.

9. ¿Puedo modificar las propiedades de un usuario de AD con PowerShell?

Sí, puede modificar las propiedades de un usuario de AD con el cmdlet Set-ADUser. Por ejemplo, para cambiar el cargo de un usuario, puede usar el comando Set-ADUser jdoe -Title ‘Nuevo Título’.

10. ¿Es posible recuperar el administrador de un miembro del grupo AD usando PowerShell?

Absolutamente. Puede hacer esto obteniendo primero el miembro del grupo con ‘Get-ADGroupMember’ y luego obteniendo el administrador con ‘Get-ADUser’. El comando se vería algo así como Get-ADUser (Get-ADGroupMember -Identity ‘GroupName’ | Select-Object -ExpandProperty SamAccountName) -Administrador de propiedades.

Terminando

La capacidad de exportar membresías de grupos de Active Directory a archivos CSV proporciona una instantánea simplificada y organizada de su entorno de TI. Esta funcionalidad es invaluable para auditorías periódicas y ayuda en la solución de problemas, la planificación y el mantenimiento de una capa adicional de copia de seguridad de datos.

Hemos analizado el uso práctico de los cmdlets ‘Get-ADGroupMember’ y ‘Export-Csv’ en PowerShell, lo que le permite exportar miembros de grupos de manera efectiva. También analizamos el manejo de excepciones para grandes grupos de AD, que se pueden abordar mediante una combinación de cmdlets ‘Get-ADGroup’ y ‘Get-ADUser’.

Sin embargo, mediante el uso de secuencias de comandos de PowerShell, puede introducir de manera efectiva la automatización en la mezcla al administrar y recuperar usuarios en su entorno de Active Directory.

Valora este artculo post

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *