Buscar miembros del grupo a través del cmdlet Get-ADGroupMember Powershell
El uso de grupos de seguridad de Active Directory es una práctica recomendada para asignar permisos de forma rápida y precisa a usuarios, computadoras y grupos. Pero, ¿cómo se puede obtener una lista de todos los miembros de un grupo de seguridad?
Si bien puede utilizar el cmdlet Get-ADGroup de PowerShell, los miembros del grupo se identificarán por sus nombres distintivos, lo que dificultará la lectura de los resultados. Una mejor opción es utilizar el cmdlet Get-ADGroupMember. Este artículo proporciona la sintaxis de este cmdlet y muchos ejemplos útiles.
Usando Get-ADGroupMember
Para obtener una lista de todos los miembros de un grupo de seguridad, simplemente ingrese el cmdlet Get-ADGroupMember en una ventana de PowerShell y se le pedirá que ingrese el nombre del grupo:
Parámetros Get-ADGroupMember
El cmdlet Get-ADGroupMember acepta los siguientes parámetros:
- -AuthType
- -Credencial
- -Identidad
- -Partición
- -Recursivo
- -Servidor
)
Los parámetros Identidad y Recursivo son los más utilizados, así que profundicemos en cada uno de ellos.
Parámetro de identidad
Utilice el parámetro de identidad para especificar el grupo de AD cuyos miembros desea enumerar. Puede especificar el grupo por su nombre distintivo, GUID, SID o nombre de cuenta SAM.
Para obtener el resultado en un formato tabular más legible, usaremos el siguiente comando:
Get-ADGroupMember -Identity Office365-E3 | ftParámetro recursivo
Un grupo de seguridad puede tener otros grupos entre sus miembros; esto se llama anidamiento grupal. Para ver los miembros de los grupos anidados usando el cmdlet ADGroupMember, necesitamos usar el parámetro Recursivo.
Por ejemplo, supongamos que el grupo de seguridad TestOrg8-Versacorp tiene cinco miembros, que son todos grupos: Ingeniería, Finanzas, Marketing, Operaciones y Ventas. Al ejecutar el cmdlet Get-ADGroupMember en TestOrg8-Versacorp sin el parámetro recursivo se devolverán esos cinco grupos, pero no sus miembros, como se muestra aquí:
Pero si agregamos el parámetro Recursivo, el cmdlet Get-ADGroupMember enumerará los miembros de todos los grupos anidados:
Get-ADGroupMember -Identity TestOrg8-Versacorp -Recursive | ftEjemplos adicionales de Get-ADGroupMember
Repasemos algunos otros casos de uso comunes de Get-ADGroupMember.
Especificar qué propiedades de miembro mostrar
Si desea especificar exactamente qué propiedades mostrar sobre cada miembro del grupo, puede usar el cmdlet Select-Object, como se muestra aquí:
Get-ADGroupMember -Identity Office365-E3 | Select-Object name, objectClass,distinguishedNameLimitar la salida a miembros con un tipo de objeto específico
Como se señaló anteriormente, un grupo de seguridad puede tener como miembros usuarios, computadoras y grupos anidados. Pero puede limitar fácilmente la salida del cmdlet Get-ADGroupMember a solo una de estas clases de objetos.
Si desea ver solo los miembros que son objetos usuario, utilice este cmdlet:
Get-ADGroupMember -Identity VPN | Where-Object {$_.objectClass -eq "user"} | ftDe manera similar, si desea ver solo los grupos anidados, use este cmdlet:
Get-ADGroupMember -Identity VPN | Where-Object {$_.objectClass -eq "group"} | ftY si desea ver solo los objetos computadora que son miembros, use este cmdlet:
Get-ADGroupMember -Identity VPN | Where-Object {$_.objectClass -eq "computer"} | ftAquí está el resultado de los tres comandos:
Exportar información de membresía de grupo a un archivo CSV
A continuación se explica cómo exportar la salida del cmdlet Get-ADGroupMember a un archivo CSV:
Get-ADGroupMember -Identity Office365-E3 | Get-ADUser -Properties * | Select Name,Mail,department,title,employeeid | Export-csv -Path C:\adgroupmemberslist.csv -NoTypeInformationHay tres cmdlets trabajando aquí:
- Get-ADGroupMember obtiene los miembros del grupo AD especificado y entrega los resultados al segundo cmdlet (Get-ADUser).
- Get-ADUser recupera las propiedades especificadas de esos miembros (nombre, dirección de correo electrónico, departamento, cargo e ID de empleado) y pasa los resultados al tercer cmdlet (Export-csv).
- Export-csv exporta los resultados a un archivo CSV, como se muestra a continuación:
Exportar los miembros de una unidad organizativa específica a un archivo CSV
Los usuarios, las computadoras y los objetos de grupo residen en unidades organizativas dentro de Active Directory.
Ejecute el siguiente script de PowerShell para exportar miembros del grupo desde una unidad organizativa especificada a un archivo CSV:
$OrgUnit = 'OU=VPN,DC=milkyway,DC=local'
# Get Active Directory groups from a specific Organizational Unit
$AD_Groups = Get-ADGroup -Filter * -SearchBase $OrgUnit
# Search through AD_Groups variable and get AD group name and member user name
$AD_Group_Members = foreach ($Group in $AD_Groups) {
Get-ADGroupMember -Identity $Group -Recursive | Select-Object @{Name='Group';Expression={$Group.Name}}, @{Name='Member';Expression={$_.Name}}
}
# Export groups and users to csv file from AD_Group_Members variable
$AD_Group_Members | Export-Csv -Path C:\AD_Group_Members.csv -NoTypeInformation
En este guión:
- La primera línea define la ruta a la unidad organizativa deseada.
- La segunda línea usa el cmdlet Get-ADGroup para obtener todos los grupos de AD de esa unidad organizativa.
- Luego, el guión recorre esos grupos de AD y obtiene el nombre y los miembros de cada grupo.
- La última línea utiliza el cmdlet Export-csv para exportar los resultados a un archivo CSV.
Y aquí está el archivo CSV resultante:
Ver el resultado en una tabla interactiva
Para mostrar el resultado en una tabla interactiva, utilice el cmdlet Out-GridView:
Get-ADGroupMember -Identity VPN | Select-Object name, objectClass,distinguishedName | Out-GridViewEn la tabla resultante, puede reordenar fácilmente las columnas, ordenar las filas, filtrar los datos y más.
Enumere únicamente los miembros de grupos globales (o universales)
Para enumerar únicamente los miembros de los grupos globales, use Get-ADGroup con Get-ADGroupMember como se muestra aquí:
Get-ADGroup -Filter {GroupScope -eq "Global"} | Get-ADGroupMember | Select-Object name, objectClass,distinguishedNameMostrar información adicional sobre los miembros del grupo
El cmdlet Get-ADGroupMember devuelve solo información del atributo "miembro" del grupo, que consta principalmente del CN, OU y nombre de dominio de cada miembro.
Si necesita información adicional, como las direcciones de correo electrónico de los miembros y los nombres para mostrar, puede canalizar la salida de Get-ADGroupMember al cmdlet Get-ADUser y especificar las propiedades adicionales que desea ver, de la siguiente manera:
Get-ADGroupMember -Identity Office365-E3 | Get-ADUser -Properties DisplayName,EmailAddress | Select Name,DisplayName,EmailAddress,SAMAccountName









