Si eres un administrador en un entorno que todavía se encuentra utilizando Active Directory, este post puede ser de ayuda. Como M365 administradora la tarea de saber quiénes forman parte de un grupo en Active Directory aparece muy seguido en mi día a día.
La ventaja de exportar esta información con powershell es que puede puede ser utilizada para exportar los datos en un archivo csv y luego crear reportes, asignar permisos correctamente, asignar licencias o usar esta lista con otros scripts.
Entonces, ¿Cómo se obtienen todos los miembros de un grupo?»
1. Requisitos
1.1 Tu computadora debe estar unida al dominio de tu empresa
Es decir, que puedas iniciar sesión con tu cuenta de trabajo.
1.2 Debes tener instalado el módulo de ActiveDirectory para Powershell
Antes de usar cualquiera de estos comandos, necesitas el comando Get-ADGroupMember que es parte del módulo de powershell “Active Directory”. Este comando está instalado por defecto en los Controladores de Dominio. Sin embargo, probablemente estés corriendo estos scripts en otra computadora designada para tareas de automatización o development. Así que tendrás que instalar este módulo en tu propia computadora.
Importa el módulo de Active Directory si es necesario.
Import-Module ActiveDirectory
1.3 Permisos necesarios
Debes de tener los permisos necesarios para ocnsultar el directorio.
- Permiso de lectura en Active Directory: debes tener acceso de lectura sobre los objectos que deseas consultar (usuarios, grupos, unidades organizativas)
- Miembros del grupo “Usuarios del dominio” (Domain Users): En la mayoría de los entornos, los usarios estándar del dominio pueden ejecutar comandos como Get-ADUser o Get-ADGroupMember para obtener información básica.
2. Ejecutar el comando
Esto mostrará todos los miembros directos del grupo (usuarios, grupos, computadoras). En donde el nombre del grupo (pre-Windows 2000) lo puedes encontrar usando “Active Directory Users and Computers” en el tab “General” de las propiedades del grupo.
Get-ADGroupMember -Identity NombreDelGrupo
3. Opciones avanzadas
3.1 Filtrar solo usuarios
Get-ADGroupMember -Identity "NombreDelGrupo" | Where-Object { $_.objectClass -eq "user" }
3.2 Obtener miembros del grupo por ciertos atributos
El siguiente código nos interesa listar el SamAccountName y el DisplayName.
$miembros = Get-ADGroupMember -Identity NombredelGrupo | Where-Object {$_objectclass -eq "user"}
foreach ($usuario in $miembros){
$infoUsuario = Get-ADuser -Identity $usuario.SamAccountName -properties DisplayName
Write-Output "$($infoUsuario.SamAccountName) - $ ($infoUsuario.DisplayName)"
}
Este código te dará, por ejemplo, la siguiente información:
MariaS – Maria Sanchez
JuanP – Juan Pascal
3.3 Exportar información de usarios a un archivo csv
En este fragmento de código sustituye el NombredelGroupo y el Path de acuerdo a tus necesidades.
$miembros = Get-ADGroupMember -Identity NombredelGrupo | Where-Object {$_objectclass -eq "user"}
Datos = foreach ($usuario in $miembros){
Get-ADuser -Identity $usuario.SamAccountName -properties DisplayName
}
$datos | ExportCsv -Path "C:\temp\miembros.csv" -NoTypeInformation -Encoding UTF8