none
Listar grupos que um grupo faz parte RRS feed

Respostas

  • Amigo , no inicio o powershell é complicado mas após entender o basico você percebe que ele é muito intuitivo...

    vamos lah!
    Iniciando execute o powershell como administrador, nele execute o comando

    import-module activedirectory

    Porque? o powershell possui diversos modulos, cada ferramenta tem o seu AD,IIS etc... importando os modulos você está carregando os cmdlets (comandos) do AD para sua sessão de powershell.

    bem o powershell segue uma logica nos comandos, por exemplos comandos para ler alguma informação começam com get- e para alterar set- remover remove- criar algo novo new-
    e geralmente após o nome da ferramenta exemplo do ad get-ad*** ai vem os objetos do proprio ad. o comando que vai te ajudar muito no inicio é o get-command que traz os comandos disponiveis na sessao, então sabendo que queremos pegar algo do ad pode executar o seguinte comando

    get-command get-ad*

    que vai nos retornar todos comandos do ad que retornam algum tipo de dado..
    nessa lista vamos achar o Get-ADGroup que parece ser o que queremos....

    então para entender mais sobre esse comando executamos get-help get-adgroup -examples
    voce pode trocar o -examples por -full -detailed etc..

    analisando o resultado do get-help podemos formular o comando

    Get-ADGroup -Filter * 

    que vai nos retornar todos os grupos do AD, agora que vem o pulo do gato, o powershell trabalha com Objetos para quase tudo! ou seja ele não está te retornando somente um texto na tela como cmd mas sim um objeto com propriedades que você pode manipular e jogar para outros comandos,
    entao vamos continuar...

    precissamos que para cada grupo que o powershell traga do comando get-adgroup ele crie um txt e pegue os membros , ok? utilizamos um FOREACH para isso

    Começando de forma simples
    Get-ADGroup -Filter * | Foreach-Object { write-host "Grupo:"$_.Name 
    }

    quando passamos a saida de um comando utilizando uma | para outro comando ele passa os objetos nesse caso ele está passando os objetos para o foreach, quanto passamos objetos com a | ele vai executer um a um dos objetos retornados do primeiro comando, o objeto que ele passa fica sendo referenciado como $_    ,os objetos possuem propriedades, como vimos quando executamos o get-adgroup que a propriedade NAME tinha o nome do grupo dizemos que queremos a propriedade name do objeto que esta sendo passado pela | $_.Name

    caso queria saber todas propriedades de um objeto voce pode executar (get-adgroup -filter * | FL *)[0] (OBS: pus entre paretes e com o [0] para listar so do primeiro objeto que o comando retorna senao ele traria todas propriedades de todos objetos o que ia encher tela... como entre os objetos retornados pelo mesmo comando so mudam os VALOREs e nao as propriedades pode ver so do primeiro que ja server.)

    Agora o powershell já escreveu nome do grupo, o que queremos é pegar os membros voltamos ao que lemos acima lembra do get-command?

    então get-command get-ad* , vamos procurar por algo com membros na lista e vamos achar o Get-Get-ADGroupMember, então está facil neh?

    Get-ADGroup -Filter * | Foreach-Object {  

    write-host "Grupo:"$_.Name ;
    write-host "Membros";
    Get-ADGroupMember $_ 
    }

    Ok, agora ele retornou todos grupos e todos membros de cada grupo porem ele retornou o objeto do membro completo e queremos só o nome, o que fazemos? jogamos para uma | e filtramos exatamente como feito no grupo

    Get-ADGroup -Filter * | Foreach-Object {  

    write-host "Grupo:"$_.Name ;
    write-host "Membros";
    Get-ADGroupMember $_ | foreach-object {
    write-host "Membro:"$_.Name
    }

    }

    Agora o script é facil alterar para ele jogar em um arquivo... so troque os write-host por um

    echo "Grupo:"$_.name >> c:\x.txt

    tente fazer a parte sosinho o restante qualquer coisa prende o grito :D


    Meu Blog: http://howtoserver.com Minhas Ceritificações: 73-642,73-640

    • Sugerido como Resposta Fábio JrModerator quarta-feira, 18 de julho de 2012 19:51
    • Não Sugerido como Resposta Fábio JrModerator quarta-feira, 18 de julho de 2012 19:53
    • Marcado como Resposta RCirino quarta-feira, 25 de julho de 2012 12:21
    quarta-feira, 18 de julho de 2012 02:12

Todas as Respostas

  • Pode ser em powershell? não sei se tu chegou a ver o que postei dos grupos mas é bem mais simples.

    Meu Blog: http://howtoserver.com Minhas Ceritificações: 73-642,73-640

    terça-feira, 17 de julho de 2012 01:01
  • Não cheguei a testar, vou ver se funciona.

    posso rodar a partir de um file server ou precisa ser no domain controller?

    Abs

    terça-feira, 17 de julho de 2012 02:14
  • Tem que ser no DC por que precisa dos modulos do powershell para AD... se gostar te explico como faz esse que tu quer em powershell


    Meu Blog: http://howtoserver.com Minhas Ceritificações: 73-642,73-640

    terça-feira, 17 de julho de 2012 11:06
  • Boa noite, Matheus tenho certeza que no PowerShell deve ser mais fácil, porém não tenho habilidade nenhuma com ele.

    Por exemplo, como eu faço para gerar um txt de cada grupo contendo os grupos do qual ele faz parte? Além disso queria automatizar a tarefa de colocar grupos dentro de outros grupos baseado no resultado acima, seria possível com powershell? Como fazer?

    Obrigado pela ajuda

    quarta-feira, 18 de julho de 2012 01:18
  • que azar amigo estava respondendo e meu computador travou heheh, ja formulo uma explicação novamente, pode dar uma olhada no meu blog enquanto isso 

    http://howtoserver.com/category/microsoft/powershell/


    Meu Blog: http://howtoserver.com Minhas Ceritificações: 73-642,73-640

    quarta-feira, 18 de julho de 2012 01:45
  • Amigo , no inicio o powershell é complicado mas após entender o basico você percebe que ele é muito intuitivo...

    vamos lah!
    Iniciando execute o powershell como administrador, nele execute o comando

    import-module activedirectory

    Porque? o powershell possui diversos modulos, cada ferramenta tem o seu AD,IIS etc... importando os modulos você está carregando os cmdlets (comandos) do AD para sua sessão de powershell.

    bem o powershell segue uma logica nos comandos, por exemplos comandos para ler alguma informação começam com get- e para alterar set- remover remove- criar algo novo new-
    e geralmente após o nome da ferramenta exemplo do ad get-ad*** ai vem os objetos do proprio ad. o comando que vai te ajudar muito no inicio é o get-command que traz os comandos disponiveis na sessao, então sabendo que queremos pegar algo do ad pode executar o seguinte comando

    get-command get-ad*

    que vai nos retornar todos comandos do ad que retornam algum tipo de dado..
    nessa lista vamos achar o Get-ADGroup que parece ser o que queremos....

    então para entender mais sobre esse comando executamos get-help get-adgroup -examples
    voce pode trocar o -examples por -full -detailed etc..

    analisando o resultado do get-help podemos formular o comando

    Get-ADGroup -Filter * 

    que vai nos retornar todos os grupos do AD, agora que vem o pulo do gato, o powershell trabalha com Objetos para quase tudo! ou seja ele não está te retornando somente um texto na tela como cmd mas sim um objeto com propriedades que você pode manipular e jogar para outros comandos,
    entao vamos continuar...

    precissamos que para cada grupo que o powershell traga do comando get-adgroup ele crie um txt e pegue os membros , ok? utilizamos um FOREACH para isso

    Começando de forma simples
    Get-ADGroup -Filter * | Foreach-Object { write-host "Grupo:"$_.Name 
    }

    quando passamos a saida de um comando utilizando uma | para outro comando ele passa os objetos nesse caso ele está passando os objetos para o foreach, quanto passamos objetos com a | ele vai executer um a um dos objetos retornados do primeiro comando, o objeto que ele passa fica sendo referenciado como $_    ,os objetos possuem propriedades, como vimos quando executamos o get-adgroup que a propriedade NAME tinha o nome do grupo dizemos que queremos a propriedade name do objeto que esta sendo passado pela | $_.Name

    caso queria saber todas propriedades de um objeto voce pode executar (get-adgroup -filter * | FL *)[0] (OBS: pus entre paretes e com o [0] para listar so do primeiro objeto que o comando retorna senao ele traria todas propriedades de todos objetos o que ia encher tela... como entre os objetos retornados pelo mesmo comando so mudam os VALOREs e nao as propriedades pode ver so do primeiro que ja server.)

    Agora o powershell já escreveu nome do grupo, o que queremos é pegar os membros voltamos ao que lemos acima lembra do get-command?

    então get-command get-ad* , vamos procurar por algo com membros na lista e vamos achar o Get-Get-ADGroupMember, então está facil neh?

    Get-ADGroup -Filter * | Foreach-Object {  

    write-host "Grupo:"$_.Name ;
    write-host "Membros";
    Get-ADGroupMember $_ 
    }

    Ok, agora ele retornou todos grupos e todos membros de cada grupo porem ele retornou o objeto do membro completo e queremos só o nome, o que fazemos? jogamos para uma | e filtramos exatamente como feito no grupo

    Get-ADGroup -Filter * | Foreach-Object {  

    write-host "Grupo:"$_.Name ;
    write-host "Membros";
    Get-ADGroupMember $_ | foreach-object {
    write-host "Membro:"$_.Name
    }

    }

    Agora o script é facil alterar para ele jogar em um arquivo... so troque os write-host por um

    echo "Grupo:"$_.name >> c:\x.txt

    tente fazer a parte sosinho o restante qualquer coisa prende o grito :D


    Meu Blog: http://howtoserver.com Minhas Ceritificações: 73-642,73-640

    • Sugerido como Resposta Fábio JrModerator quarta-feira, 18 de julho de 2012 19:51
    • Não Sugerido como Resposta Fábio JrModerator quarta-feira, 18 de julho de 2012 19:53
    • Marcado como Resposta RCirino quarta-feira, 25 de julho de 2012 12:21
    quarta-feira, 18 de julho de 2012 02:12
  • Matheus,

    Acho que ele quer é a propriedade memberof(de quais grupos o grupo é membro) não o members(quais grupos pertencem ao grupo).


    Fábio de Paula Junior

    quarta-feira, 18 de julho de 2012 20:24
    Moderador
  • Falta de atenção minha hehehe

    Porém tentei ensinar ele a usar o powershell qualquer coisa eu posto o script pronto se solicitado :D


    Meu Blog: http://howtoserver.com Minhas Ceritificações: 73-642,73-640

    quarta-feira, 18 de julho de 2012 20:40
  • Matheus,

    Poderia postar o script pronto?


    Fábio de Paula Junior

    terça-feira, 24 de julho de 2012 13:33
    Moderador
  • Só pra acerscentar

    http://gallery.technet.microsoft.com/Localizar-os-usuarios-que-6e5a1b45


    O mundo é uma "janela" de oportunidades

    quarta-feira, 25 de julho de 2012 12:13
  • Bom dia

    Matheus, deu certo, desculpe a demora na resposta, é que estou envolvido nesta migração e o tempo está curto.

    Acontece que no outro dominio só terei acesso a uma OU e preciso criar os usuários e grupos, isso já fiz com scripts, só não consegui uma forma incluir os usuários de forma automatica nos novos grupos de acordo com os acessos dos grupos no antigo dominio. é possivel fazer isto usado VBS?

    Abs

    Ricardo

    quarta-feira, 25 de julho de 2012 12:21