martes, 18 de marzo de 2014

Como listar miembros de un grupo en multiples dominios con Get-ADGroupMember

Si alguna vez han intentado buscar objetos en un AD con múltiples dominios, seguramente utilizaron para ello un Global Catalog como indica un artículo anterior de este blog. Pero si trataron de ver qué usuarios pertenecen a un determinado grupo, seguramente se habrán encontrado con algún problema.
 
Como siempre, antes de utilizar un cmdlet de AD, es necesario importar el módulo (Figura 1).
 
Import-Module ActiveDirectory
Figura 1
 
Ya con el módulo importado en la sesión de PowerShell, podemos utilizar Get-ADGroup para encontrar información del grupo. Si consultamos por un grupo de nuestro propio dominio no hay mayor dificultad, pero si el grupo está en un dominio distinto no veremos resultados (Figura 2)

Figura 2
 
Para poder consultar la información de Get-ADGroup de un grupo que pertenece a un dominio distinto de aquel en el cual estamos autenticados, debemos especificar el server que queremos consultar, y aclarar que queremos utilizar el puerto de Global Catalog (Figura 3).


Get-ADGroup -Filter {name -like "NombreDelGrupo"}-Server:"NombreDelServer:PuertodeGC"
Figura 3

Con la información del grupo podemos buscar los miembros, pero si tratamos de realizar un pipe entre los cmdlets Get-ADGroup y Get-ADGroupMember obtendremos un error (Figura 4).

Figura 4

Especificar un Global Catalog no ayuda de mucho: especificar un server de otro dominio nos indica que no encuentra el grupo; especificar un server del mismo dominio, nos indica que la operación no está soportada en un Global Catalog (Figura 5).

Figura 5

La solución (Figura 6) es que no hay que especificar un server en el parámetro "-Server", sino que hay que indicar el dominio al que pertenece el grupo (Información que obtuvimos en la consulta realizada en la Figura 3).

Figura 6


Si realizamos un pipe entre ambos cmdlets, podremos obtener información de cada usuario miembro del grupo (Figura 7).

Figura 7