none
Mover máquinas de OU por IP ou Subnet RRS feed

  • Pergunta

  • Alguém já pensou e/ou criou algo para mover as máquinas do AD para determinada OU de acordo com seu IP/Range ou Subnet?

    Pergunto devido a organização para o WSUS, pois hoje por determinação da gestão todas as máquinas tem um nome meio em comum usando o número do patrimônio e fica difícil identificar as máquinas de um site e outro, e como tenho um WSUS Replica em cada site, queria manter a organização que tinha antes, pois tinha um identificador no nome.

    Vlz


    by Dimiro MCP | MCDST | ITILF Foi útil? Classifique! Se resolveu, avalie! ;) °dimiro.com | ºtwitter.com/bydimiro

    quarta-feira, 19 de fevereiro de 2014 18:12

Respostas

  • Cláudio,

    Sugestão:

    1) Pegar a lista da suas máquinas no AD (use o módulo ActiveDirectory do PowerShell)

    2) Com essa lista dê um "ping" usando o nome como parametro e pegue o IP no retorno.

    3) Com o IP em mãos faça a escolha de qual OU ele tem que ir.

    Veja esse código para pegar o IP, só fica faltando vc fazer 1 e 3.

    $computers = @("comp01","comp02")
    
    
    foreach ($c in $computers){
        "Testando $c"
        $Ping = Test-Connection $c -Count 1
    
        if ($Ping){
            "`tPingou"
            $IP = $Ping.IPV4Address.IPAddressToString
    
            "`tAgora vc tem o IP, adicione o código"
    
        }else{
            "`tnao pingou"
        }
    
    }


    Fábio de Paula Junior

    quarta-feira, 19 de fevereiro de 2014 19:54
    Moderador

Todas as Respostas

  • Cláudio,

    Sugestão:

    1) Pegar a lista da suas máquinas no AD (use o módulo ActiveDirectory do PowerShell)

    2) Com essa lista dê um "ping" usando o nome como parametro e pegue o IP no retorno.

    3) Com o IP em mãos faça a escolha de qual OU ele tem que ir.

    Veja esse código para pegar o IP, só fica faltando vc fazer 1 e 3.

    $computers = @("comp01","comp02")
    
    
    foreach ($c in $computers){
        "Testando $c"
        $Ping = Test-Connection $c -Count 1
    
        if ($Ping){
            "`tPingou"
            $IP = $Ping.IPV4Address.IPAddressToString
    
            "`tAgora vc tem o IP, adicione o código"
    
        }else{
            "`tnao pingou"
        }
    
    }


    Fábio de Paula Junior

    quarta-feira, 19 de fevereiro de 2014 19:54
    Moderador
  • Valeu mas fica um pouco inviavel fazer assim devido o tamanho do meu parque e as várias redes segmentadas que tenho também.

    São mais de 20k estações e em cada site tenho várias redes segmentadas.


    by Dimiro MCP | MCDST | ITILF Foi útil? Classifique! Se resolveu, avalie! ;) °dimiro.com | ºtwitter.com/bydimiro

    quinta-feira, 20 de fevereiro de 2014 11:37
  • Não acho inviável, pode ser demorado, inviável não.

    Você pode dividir a execução do script, exemplo, rodar apenas nas máquias de uma determinada OU (explore o comando GET-ADComputer).

    Outra forma e se você tiver algum banco de dados de inventário que contenha os IPs, aí você não precisa fazer o Ping.

    Observação: Quando eu disse pra pegar a lista de máquina não é pra você digitar máquina por máquina naquela linha, vc deve usar o GET-AdComputer assim:

    $Computers = Get-Adcomputers <opções>


    Fábio de Paula Junior


    quinta-feira, 20 de fevereiro de 2014 13:57
    Moderador