Skip to content

Instantly share code, notes, and snippets.

@lukecamilo
Created May 22, 2019 14:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lukecamilo/ad057c160041334ccf6962fb62a14568 to your computer and use it in GitHub Desktop.
Save lukecamilo/ad057c160041334ccf6962fb62a14568 to your computer and use it in GitHub Desktop.
Trae los grupos en los que esta un usuario recursivamente
## Agregar el modulo de Active Directory.
import-module activedirectory
$Final=@()
## Apunta a la ruta donde esta el archivo
$ruta="c:\datos"
## Apunta al archivo
$archivo="lista de usuarios.txt"
## Obtiene una lista de todos los usuarios que esten habiliados.
$usuariostotal= get-content $ruta\$archivo
foreach ($usuario in $usuariostotal){
## Guarda el nombre del usuario.
$nombre=$usuario.name
## Guarda el username.
$user=$usuario.samaccountname
$Completo=@()
$Grupos="ERROR DESCONOCIDO"
$primero=$true
$agregar=""
## Busca los grupos a los que pertenece el usuario.
$Completo=get-ADPrincipalGroupMembership $user | select-object name
$cantidad=$Completo.count
## Por cada grupo hace una iteracion.
for($a=0;$a -lt ($cantidad);$a++){
if ($primero){
$primero=$false
## Toma el nombre del grupo y lo pasa a una variable.
$agregar=$Completo[$a].name
## Agrega la variable anterior a $grupos para dejarlo todo en una sola variable.
$Grupos="$agregar"
}
else{
$agregar=$Completo[$a].name
$Grupos+=", $agregar"
}
}
$Final+=$usuario | select-object @{Expression={$nombre};Label="Nombre"},@{Expression={$user};Label="Username"}, @{expression={$Grupos};Label="Grupos"},@{expression={$cantidad};Label="Cantidad"}
}
## Exporta el reporte a un CSV
$Final | export-csv $ruta\"ReporteUsuarios.csv"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment