Saltar al contenido
Inicio / Windows Server / Pildorita PowerShell: Listar usuarios de un grupo de AD

Pildorita PowerShell: Listar usuarios de un grupo de AD

Os muestro un cmdlet de PowerShell (Módulo de Active Directory para PowerShell) para listar los usuarios de un grupo de Active Directory, además nos permite listar los usuarios que son miembros de dicho grupo pero mediante anidaciones.

Listado de usuarios de grupos miembros del grupo sobre el cual solicitamos la consulta GRP ASIRLAB

Sintaxis: Get-ADGroupMember “Nombre_Grupo” -recursive | Select-Object name

Get-ADGroupMember “GRP ASIRLAB” -recursive | Select-Object name

PowerShell_AD_User_List-1.png
Con el mismo cmdlet nos muestra los usuarios de un grupo del cual son miembros “directos”

Get-ADGroupMember “GRP MARKETING” -recursive | Select-Object name

PowerShell_AD_User_List-2.png

Ahora si queremos exportar el listado a un txt y luego importarlo a una EXCEL únicamente debemos redireccionar la salida del comando a un fichero de texto

Get-ADGroupMember “GRP MARKETING” -recursive | Select-Object name >[ruta fichero]

PowerShell_AD_User_List-3.png

Sintaxis completa del cmdlet

PowerShell_AD_User_List-4.png

Espero que os sea de utilidad!!!

Etiquetas:

37 comentarios en «Pildorita PowerShell: Listar usuarios de un grupo de AD»

  1. Muy buenas, como puedo listar con powershell los grupos y nombre de usuarios que tienen derechos a administrar dicho grupo, todo lo que esta en el tab de Security

  2. Excelente aporte me sirvió de mucho. Necesitaba mas información aparte del name pero con poner * al final salió excelente.
    Get-ADGroupMember “GRP ASIRLAB” -recursive | Select-Object *

  3. Estimados, muchas gracias por la información, una consulta:

    existe alguna forma de ejecutar un comando que permita listar los usuarios que cumplan 2 condiciones al mismo tiempo?

    por ejemplo necesito listar en powershell “todos los usuarios que pertenezcan al grupo **nombre_grupo_active_directory** y que además pertenezcan al país de **CODIGO_PAIS**”

    El CODIGO_PAIS lo tenemos almacenado bajo el atributo “co” de cada cuenta usuario

    Saludos y muchas gracias!

    1. Santiago Buitrago Reis

      Hola Anibal:

      Aquí te dejo un ejemplo que tu debes adaptar a tu consulta:

      $OU = “OU=Ou-Users,DC=dominio,DC=com”
      Get-ADUser -SearchBase $OU -Filter {Co -eq -and Enabled -eq $true} -Properties * | fl DisplayName,CO

      Espero que te ayude.

  4. Hola Santiago,
    Agradezco la información.
    Necesitó ayuda con poder listar y/o exportar los usuarios de todos los grupos existentes de una OU.
    Saludos y agradecido de antemano.

    1. Santiago Buitrago Reis

      Hola:

      Listar todos los usuarios de un grupo y de sus grupos anidados:

      Get-ADGroupMember -Identity “NombreGrupo” -Recursive |fl SamAccountName (aqui pones los nombres de los atributos que quieras exportar)

      Para exportar los registros a un CSV puedes hacerlo así:

      Get-ADGroupMember -Identity “NombreGrupo” -Recursive | Select-Object SamAccountName | Export-Csv -Path C:\Temp\usuarios.csv -NoClobber -Encoding UTF8

      Si quieres algo más en concreto, defínelo y te paso la consulta más exacta. Porque entiendo que, tu querrás que busque todos los grupos de una OU y te diga los miembros de cada grupo, pero es una respuesta más extensa.

      Un saludo

        1. Santiago Buitrago Reis

          Hola:

          Aquí tienes:

          $miembros = Get-ADGroupMember “Nombre-Grupo” -recursive | Select-Object SamAccountName
          foreach ($user in $miembros) {Get-Aduser -identity $user.SamAccountName -properties * | ft UserPrincipalName,Mail}

          Si quieres más atributos, se lo especificas en la salida del Get-AdUser.

          Un saludo

  5. Hola como estas? Te consulto si me puedes ayudar a sacar un listado de usuarios habilitados y que no se hayan logueado en 90 días, solo usuarios habilitados, excluyendo usuarios web. Gracias

    1. Santiago Buitrago Reis

      Hola Jessika:

      Aquí te muestro un ejemplo de usuarios que su último login es anterior a 90 días, dentro de una OU, usuarios habilitados (tu puedes cambiar el filtro de Enabled por lo que comentas de usuario no web):

      $FechaLimiteUsuarios = (Get-Date).AddDays(-90)
      $OU = “OU=OU,DC=domain,DC=local”
      Get-ADUser -SearchBase $OU -Filter {LastLogonDate -lt $FechaLimiteUsuarios -and Enabled -eq $true} -Properties * | Select-Objet displayname,created,lastlogondate,passwordlastset, xxxxx

      Espero que te sirva como referencia.

    1. Santiago Buitrago Reis

      Hola Huen:

      Aquí te dejo algunos comandos que te pueden ayudar:

      Todos los usuarios de los grupos locales de dominio:
      Get-ADGroup -Filter “GroupScope -eq ‘DomainLocal'” | Get-ADGroupMember | Select-Object nombre_campos_separados_comas | export-csv -file C:\temp\usuarios.csv -Encoding UTF8
      Todos los usuarios de los grupos globales de dominio:
      Get-ADGroup -Filter “GroupScope -eq ‘Global'” | Get-ADGroupMember | Select-Object nombre_campos_separados_comas | export-csv -file C:\temp\usuarios.csv -Encoding UTF8
      Todos los usuarios de un grupo y los anidados:
      Get-ADGroupMember -Identity “Nombre-Grupo” -Recursive | Select-Object nombre_campos_separados_comas | export-csv -file C:\temp\usuarios.csv -Encoding UTF8

      Se pueden exportar de muchas maneras, si buscas algo en concreto, dímelo.

      Un saludo

  6. Hola Santiago, necesito ayuda, cuando exporto los grupos de AD me codifica los miembros de algunos grupos con base64. Esto no ocurre con todos los grupos solo con algunos.

    Tenéis alguna idea de a que puede deberse? o como puedo solucionar este problema?

    He probado todos los parámetros que tiene ldif sin éxito.

  7. Hola Santiago, necesito ayuda, cuando exporto los miembros de los grupos de AD me codifica los miembros de algunos grupos con base64. Esto no ocurre con todos los grupos de AD, solo con algunos, y cuando ocurre en vez de aparecer los datos del usuario miembro aparece un código Alpha numérico

    Tenéis alguna idea de a que puede deberse? o como puedo solucionar este problema?

    He probado todos los parámetros que tiene ldif sin éxito.

    1. Santiago Buitrago Reis

      Hola Pedro:

      ¿Puedes mostrarme el script que utilizas? Si lo haces con powershell es muy sencillo:

      Get-ADGroupMember -Identity “Nombre-Grupo” -Recursive | Select-Object nombre_campos_separados_comas | export-csv -file C:\temp\usuarios.csv -Encoding UTF8

      Un saludo

  8. Buenos días Santiago, me podrías ayudar, necesito sacar a un csv los integrantes de un grupo de AD con la dirección de correo y Principal username. gracias por adelantado

  9. Buenos días Santiago, me podrias ayudar?, necesito sacar a un archivo csv, los miembros de un grupo de AD con si mail y su UserPrincipalName, gracias por adelantado

  10. Buenos dias Santiago, no se si me puedes ayudar, necesitaria sacar a un fichero CSV los miembros de un Grupo de AD con su userprincipalName y su direccion de correo, gracias por adelantado

  11. Buenas Tardes
    Muchas Gracias por tus aportes, será que me puedes colaborar en algo, Me están solicitando listar todos los usuarios en directorio activo los cuales no pertenecen a ningún grupo.

    Agradezco sus respuestas

  12. Saludos santiago, existe un script para que me liste todos los usuarios que NO pertenezcan a ningun grupo de seguridad en azure ad, o AD por ejemplo, realmente lo necesito para azure ad..

    1. Santiago Buitrago Reis

      Hola Rafael:

      Aquí te lo dejo para ADDS: Get-ADUser -LdapFilter “(!memberOf=*)” -Properties memberOf | Select-Object SamAccountName, MemberOf

      Un saludo

    1. Santiago Buitrago Reis

      Hola Víctor:

      Aquí tienes:

      Get-ADGroup -Filter {(name -like “*nombre-grupo*”)`
      | Get-ADGroupMember -Recursive | Where { $_.objectClass -eq “user” } `
      | Get-ADUser -properties * | where {$_.enabled -eq $true} `
      | where {$_.lockedout -eq $false} | select SamAccountName -unique

  13. Muy buenas.
    Como se haría un script que buscara usuarios dentro de un grupo de AD los cuales no hayan iniciado sesión en mas de 30 días? Los deshabilitara y los sacara del grupo?

    Muchas gracias de antemano.

    1. Santiago Buitrago Reis

      Hola Sergi:

      Pues depende, si son usuarios deshabilitados claramente si. Porque en que circunstancias sabes que sino ha iniciado en 30 días lo tienes que deshabilitar? Pero si lo sabes y es que si, yo le quito todos los grupos.

      Un saludo

    1. Santiago Buitrago Reis

      Hola Diego:

      Simple: Get-ADGroup -Filter * | ft Name, GroupCategory

      Luego, ya si quieres ver sus miembros, etc.. es otra historia.

      Un saludo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

¡Comparte!