none
Inserindo grupos remotamente RRS feed

  • Pergunta

  • Pessoal,

    Estou tentando inserir 5 grupos de uma única vez utilizando o Net localgroup Administradores, no entanto quando um dos grupos que tento inserir já existe, aparece uma mensagem informando que o grupo já existe e não adiciona os demais.

    Alguém sabe como resolver isso? Eu quero que ele ignore os grupos já existentes e insira os demais. Porque são muitas máquinas e algumas já tem um ou dois grupos e outras não tem nenhum. E eu quero utilizar o mesmo comando para todas.

    quarta-feira, 2 de novembro de 2011 18:11

Respostas

  • Que alegria... Powershell é meu favorito... :)
    $GrupoLocal = $null
    $ComputadorLocal = [adsi]"WinNT://localhost,computer"
    [array]$grupos_list = "grupo1","grupo2","grupo3","Administradores"
    foreach($grupo in $grupos_list){
        if([ADSI]::Exists("WinNT://localhost/$grupo,group")){
            write-host "existe"
        } else {
            write-host "vai criar..."
            $GrupoLocal = $ComputadorLocal.Create("group",$grupo)
            $GrupoLocal.SetInfo()
        }
    }

     Vou postar ainda hoje no meu blog esse script explicando passo a passo...
    se você se quiser dar uma olhada... HowToServer.com


    Matheus Kamphorst Microsoft Certified Technology Specialist Windows Server 2008 Network Infrastructure, Configuring Windows Server 2008 Active Directory, Configuring
    quinta-feira, 3 de novembro de 2011 14:29

Todas as Respostas

  • Amigo você esta fazendo um bat? um script em vbs? ou powershell?
    ou somente executando os comandos aleatoriamente?
    dependendo da maneira que estiver fazendo você pode fazer uma verificação no codigo, estou de saida agora mais tarde coloco um exemplo em powershell... 
    Matheus Kamphorst Microsoft Certified Technology Specialist Windows Server 2008 Network Infrastructure, Configuring Windows Server 2008 Active Directory, Configuring
    quarta-feira, 2 de novembro de 2011 20:00
  • Juliao,

    Se possivel post o código do seu script para que possamos inserir a sintaxe para que ele ignore caso já exista.


    Elmo Baraúna, SSA-Ba - FSCTP / MCP / MCDST / MCTS / MCSA / MCT http://infraestruturaealgomais.blogspot.com
    quinta-feira, 3 de novembro de 2011 12:41
  • Matheus, estou fazendo um bat.

    Estou acessando cada máquina usando o PSEXEC.

    quinta-feira, 3 de novembro de 2011 12:53
  • Juliao,

    Se possivel post o código do seu script para que possamos inserir a sintaxe para que ele ignore caso já exista.


    Elmo Baraúna, SSA-Ba - FSCTP / MCP / MCDST / MCTS / MCSA / MCT http://infraestruturaealgomais.blogspot.com

    Talvez eu esteja querendo fazer um trabalho da maneira mais complicada, existindo uma maneira mais simples. Mas é que eu nunca fiz isso antes e quero saber exatamente como isso funciona. Eu faço o seguinte:

    Acesso a máquina com o psexec:

    PSEXEC nome_da_maquina cmd
    net localgroup Administradores (para listar)

    Depois tento adicionar os grupos da seguinte forma:
    net localgroup Administradores grupoA grupoB grupoC /ADD

    Quando existe um desses grupos ele não adiciona nenhum.

    Apenas isso que estou fazendo.

    quinta-feira, 3 de novembro de 2011 13:08
  • Amigo, seu ambiente utiliza um domínio?
    Já fiz isso que você está tentando e foi bem problemático...

    Se tiver em ambiente de domínio faça via GPO Preferences, pois vai ser bem mais simples...
    Toda via, você pode tentar 3 linhas de código uma para adicionar cada grupo....

     


    Matheus Kamphorst Microsoft Certified Technology Specialist Windows Server 2008 Network Infrastructure, Configuring Windows Server 2008 Active Directory, Configuring
    quinta-feira, 3 de novembro de 2011 13:10
  • Amigo, seu ambiente utiliza um domínio?
    Já fiz isso que você está tentando e foi bem problemático...

    Se tiver em ambiente de domínio faça via GPO Preferences, pois vai ser bem mais simples...
    Toda via, você pode tentar 3 linhas de código uma para adicionar cada grupo....

     


    Matheus Kamphorst Microsoft Certified Technology Specialist Windows Server 2008 Network Infrastructure, Configuring Windows Server 2008 Active Directory, Configuring
    Sim, utiliza domínio. Foi por essa razão que citei q estou fazendo um trabalho da maneira mais complicada. Dá pra fazer a GPO e será bem mais viável, porque são muitas máquinas. Mas eu queria uma solução pra fazer pelo prompt também.
    quinta-feira, 3 de novembro de 2011 13:25
  • Ok, pelo prompt você pode utilizar uma GPO para executar o script localmente nos computadores o que tira toda a parte "chata" de fazer a conexão assim você pode fazer seu script verificar se os grupos existem ou  não...

    Via GPO sem script você utiliza as GPOS Preferences de computador lah tem a opção Local Users and Groups...

    mais tarde posto um exemplo de script aqui para você tem preferencia entre powershell e vbs? 
    Matheus Kamphorst Microsoft Certified Technology Specialist Windows Server 2008 Network Infrastructure, Configuring Windows Server 2008 Active Directory, Configuring
    quinta-feira, 3 de novembro de 2011 13:34
  • Ok, pelo prompt você pode utilizar uma GPO para executar o script localmente nos computadores o que tira toda a parte "chata" de fazer a conexão assim você pode fazer seu script verificar se os grupos existem ou  não...

    Via GPO sem script você utiliza as GPOS Preferences de computador lah tem a opção Local Users and Groups...

    mais tarde posto um exemplo de script aqui para você tem preferencia entre powershell e vbs? 
    Matheus Kamphorst Microsoft Certified Technology Specialist Windows Server 2008 Network Infrastructure, Configuring Windows Server 2008 Active Directory, Configuring

    Fico agradecido Matheus. Dou preferência ao powershell.
    quinta-feira, 3 de novembro de 2011 13:41
  • Que alegria... Powershell é meu favorito... :)
    $GrupoLocal = $null
    $ComputadorLocal = [adsi]"WinNT://localhost,computer"
    [array]$grupos_list = "grupo1","grupo2","grupo3","Administradores"
    foreach($grupo in $grupos_list){
        if([ADSI]::Exists("WinNT://localhost/$grupo,group")){
            write-host "existe"
        } else {
            write-host "vai criar..."
            $GrupoLocal = $ComputadorLocal.Create("group",$grupo)
            $GrupoLocal.SetInfo()
        }
    }

     Vou postar ainda hoje no meu blog esse script explicando passo a passo...
    se você se quiser dar uma olhada... HowToServer.com


    Matheus Kamphorst Microsoft Certified Technology Specialist Windows Server 2008 Network Infrastructure, Configuring Windows Server 2008 Active Directory, Configuring
    quinta-feira, 3 de novembro de 2011 14:29