none
Obterner lista de Grupos y miembros RRS feed

  • Pergunta

  • Buen Dia,

    Requiero de su valiosa colaboralcion en la resolucion de un pedido que se me ha hecho; el mismo consiste en listar todos lo grupos de un dominio y sus miembros, este se puede obtener con el siguiente esquema?

    "Nombre del Grupo"    "Miembro"

                                       "Miembro"

                                       "Miembro"

                                       "Miembro"

    "Nombre del Grupo"    "Miembro"

                                       "Miembro"

                                       "Miembro"

                                       "Miembro"

    Me podrian apoyar en dejarme saber si hay script que lo pueda listar de esta forma???

    Saludos y de antemano gracias

    terça-feira, 11 de outubro de 2016 11:43

Todas as Respostas

  • Hola JC Suarez podrías probar con un dsquery

    Ejecuta un CMD

    C:\> dsquery group -name “NombreGrupo” | dsget group -members > resultado.txt

    Entre comillas el nombre del grupo del que deseas extraer los miembros.

    El txt se guardara en la raíz del disco C: en este caso, puedes cambiar el nombre para una mejor referencia.

    Saludos.

    terça-feira, 11 de outubro de 2016 12:46
  • Hola,

    Con el script siguiente tendrás "casi" lo que pides, con la única diferencia que tendrías:

    "Nombre del Grupo1"    "Miembro"
    "Nombre del Grupo1"    "Miembro2"
    "Nombre del Grupo1"    "Miembro3"
    "Nombre del Grupo2"    "Miembro1"
    "Nombre del Grupo3"    "Miembro1"
    "Nombre del Grupo3"    "Miembro2"

    Esto en un CSV que puedes leer desde Excel para que lo muestre como una tabla fácilmente.

    Si quisieras otro tipo de salida puedes jugar cambiando el Export-Csv de la línea 33...

    #Requires -Module ActiveDirectory
    $Error.Clear();
    Clear-Host;
    #OU donde quieres buscar los grupos. Si quieres el dominio completo quita la parte OU=
    $SearchOU = "OU=TuOU,DC=dominio,DC=com"
    $CSVFile = "C:\Temp\Prueba.csv"
    Try
    {
    	$Modules = "ActiveDirectory"
    	ForEach ($Module in $Modules)
    	{
    		If ((Get-Module | ForEach-Object {$_.Name}) -notcontains $Module)
    		{
    			Import-Module $Module
    		}
    	}
    	If (Test-Path $CSVFile)	
    	{
    		Remove-Item $CSVFile
    	}
    	$Groups = Get-ADGroup -SearchBase $SearchOU -Filter *
    	ForEach ($Group in $Groups)
    	{
    		$GroupMembers = $null
    		$Members = Get-ADGroupMember $Group -Recursive
    		ForEach ($User in $Members)
    		{
    			$GroupMembers = New-Object PSCustomObject -Property @{
    				GroupName = $Group.Name
    				Login = $User.SamAccountName
    				UserName = $User.name
    			}
    			$GroupMembers | Select GroupName, Login, Username | Export-Csv $CSVFile -NoTypeInformation -Append
    		}
    	}
    }
    Catch
    {
    	$Error
    }
    

    Espero que te sirva.

    Un saludo.

    Diego

    terça-feira, 11 de outubro de 2016 14:46
  • Hola Luis Ya maneje las opciones de este comando y no me lo permite en la estructura que lo necesito creo que hay que crear un CMDLEts

    terça-feira, 11 de outubro de 2016 15:04
  • Hola Diego, agradezco mucho la ayuda, este script que me presenta es muy parecido a lo que necesito, pero me da un error en esta linea

    $GroupMembers | Select GroupName, Login, Username | Export-Csv $CSVFile -NoTypeInformation -Append

    y me da este error

    Export-Csv : No se encuentra ningún parámetro que coincida con el nombre del parámetro 'append'.
    En línea: 34 Carácter: 84
    +              $GroupMembers | Select GroupName, Login, Username | Export-Csv $CSVFile -append <<<<
        + CategoryInfo          : InvalidArgument: (:) [Export-Csv], ParameterBindingException
        + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.ExportCsvCommand

    y cuando abro el archivo cvs solo hay una linea escrita, quedo atento a tus comentarios

    de antemano gracias

    Saludos


    JC Suarez

    terça-feira, 18 de outubro de 2016 18:08
  • Hola JC Suarez,

    El problema que tienes es que el parámetro -Append se introdujo en Powershell 3.0 (actualmente estamos en la versión 5).

    Debes estar trabajando con una versión anterior y por eso te da error sobre que no reconoce el parámetro.

    Si actualizas Powershell te funcionará el script sin problemas.

    Un saludo.

    Diego

    quarta-feira, 19 de outubro de 2016 07:43
  • Hola Diego te comento que este fue el script que me funciono para lo requerido

    mport-Module Activedirectory
    Get-ADUser -Filter * -Properties DisplayName,memberof | % {
    $Name = $_.DisplayName
    $_.memberof | Get-ADGroup | Select @{N=”User”;E={$Name}},Name
    } | Export-Csv C:\USUARIOSYGRUPOS.csv -nti

    Saludos


    JC Suarez

    segunda-feira, 24 de outubro de 2016 15:50
  • Estimados, buenos días

    Como podría agregar un nuevo atributo para que se exporte en el reporte. Por ejemplo quiero que también se muestre ''Description''.

    Agradezco su apoyo.

    Muchas Gracias

    Joel Acosta Panduro

    terça-feira, 20 de agosto de 2019 15:41