Soy nuevo en PowerShell, pero he estado leyendo manuales y practicado un poco. Mi objetivo es enumerar todos los usuarios en todos los grupos de seguridad bajo la ruta especificada. He encontrado la manera de hacerlo:
get-adgroup -Filter * -SearchBase "OU=Groups,DC=corp,DC=ourcompany,DC=Com" | %{Get-ADGroupMember $_.name} | ft name
Pero el problema es que no veo el nombre del grupo. Todo lo que obtengo es un montón de usuarios. Sería bueno si alguien pudiera decirme cómo mostrar el nombre del grupo antes de que todos los miembros de este grupo aparezcan en la lista. Gracias.
active-directory
powershell
groups
Alec T
fuente
fuente
% { "GroupName: $($_.Name)"; "==========" ; Get-ADGroupMember $_ } | ft name
entonces también podrías obtener lo que buscas. La respuesta de Ryan es aún mejor, pero esa es una sola línea si la quieres.Respuestas:
Gimme the codes!
poderes, activar!El punto es que solo tómate tu tiempo y divídelo en pasos. Sé que es divertido intentar que todo y el fregadero de la cocina encajen en una sola línea con Powershell, pero de ninguna manera es necesario.
Algunas notas
No es necesario que lo haga
Get-ADGroupMember
si recopila la propiedad Miembros en elGet-ADGroup
Cmdlet inicial . Lo bueno de esto es que reduce a la mitad la cantidad de llamadas que debe hacer a AD, lo que debería hacer que su script se ejecute más rápido, y alivia la carga en el controlador de dominio.$ G.Members mostrará todos los miembros del grupo $ G ... en Powershell 3. En Powershell 2, es posible que aún necesite colocar otro Foreach dentro del Foreach para enumerar a través de los miembros del grupo. ( Oye, te escuché como bucles ... )
Yo uso
Write-Host
aquí, lo cual es asqueroso. Nunca deberías usarlo realmenteWrite-Host
. En cambio, deberías estar construyendo y generando objetos, no texto, pero ese era un tema completamente diferente y yo era demasiado vago para hacerlo para esta respuesta.fuente
Aquí hay una solución mucho mejor. Esto pondrá todo en un csv de 3 columnas con nombre de grupo, nombre de usuario y nombre de cuenta sam. Es mucho más fácil descubrir en qué grupo se encuentra alguien cuando hay 400 usuarios en un grupo, ya que no tiene que desplazarse.
fuente
Tuve que agregar
.name
después$group
para que esto funcione para mí.fuente
Si alguna vez se encuentra con el
Size Limit
problema con grupos que contienen más de 5000 miembros, puede cambiar la línea de la siguiente manera:fuente
Aquí hay una secuencia de comandos que exporta todos los grupos en una unidad organizativa a un archivo separado para cada grupo con el nombre y la descripción del grupo. Si alguien quiere eso ...
fuente