none
Ajuda Script - IP DHCP para IP Fixo RRS feed

  • Pergunta

  • Amigos, 

    Estou passando por um pequeno problema, onde preciso realizar a troca de ip's DHCP para IP Fixo.

    Acontece que tentei utilizar o netsh, porém sem sucesso, como tenho uma lista bem grande (+150 hosts), acho inviável entrar em contato com cada usuário para realizar o procedimento de alteração manualmente.

    Eu tenho a informação do nome das estações e dos IP's atuais, nesse caso os que foram pegos por DHCP. Preciso realizar uma consulta identificando a placa de rede que contém esse IP, e posteriormente realizar a inserção dos IP fixo, gateway, DNS.

    Será que existe alguma forma de realizar tal procedimento por Script?

    Att.

    Welliton
    quarta-feira, 7 de agosto de 2013 20:48

Respostas

  • Via comando Netsh voce também consegue inserir o GW.

    Explicando o script

    for /F "eol=; tokens=1,2,* delims=," %%a in (base.txt) do netsh interface ip set address name="<Sua_Conexão>" static %%a %%b %%c

    Fará um loop e listará tudo o que estiver no arquivo "base.txt". Imagine que seu arquivo esteja com o seguinte layout:

    192.168.0.2 255.255.255.0 1

    Isso equivale respectivamente as variaveisk %%i (IP) %%b (Mascara) %%c (metrica).

    Onde não consegui encontrar solução é o fato de, em cada maquina que esse script rodar ele deve pular para a próxima linha, senão você terá conflito de IP.

    quinta-feira, 8 de agosto de 2013 14:23

Todas as Respostas

  • Olá Wellinton.

    Pelo ambiente que descreveu, creio que você não conseguirá fugir de certo trabalho manual. 

    Tente combinar o NETSH e o PSEXEC (sysinternals) http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

    Abaixo deixo uma sintaxe simples do psexec e comando com loop em .bat

    psexec @base.txt -c -u <user> -p <senha>

    Loop:

    for /F "eol=; tokens=1,2,* delims=," %%a in (base.txt) do netsh interface ip set address name="<Sua_Conexão>" static %%a %%b %%c

    Espero que te ajude de alguma forma. Vou pensar em um solução e vamos manter contato


    • Editado Nathan Pinotti quarta-feira, 7 de agosto de 2013 21:11 erro no script
    quarta-feira, 7 de agosto de 2013 21:11
  • Obrigado Nathan, toda e qualquer colaboração será útil!

    Estou tentando pensar em algo mais automatizado, caso eu tenha sucesso publicarei para todos.

    Abs

    Welliton

    quinta-feira, 8 de agosto de 2013 03:38
  • Então eu tinha pensado em utilizra o loop junto com o psexec, assim voce checaria todas as maquinas da rede sem sair da cadeira. Eu esbarrei em "Como fazer o loop ler as linhas sequencialmente a medida que é executado nas estações, por exemplo:

    - psexec rodou na estação 1, leu primeira linha e adicionou um IP. Rodou na estação 2 leu segunda linha e adicionou um IP e assim por diante.

    Abraço

    Se achou útil, marque como resposta.

    quinta-feira, 8 de agosto de 2013 11:02
  • Na ocasião eu necessito adicionar as linhas do gateway também.

    Não entendi muito bem a sua colocação.

    Abs.

    quinta-feira, 8 de agosto de 2013 12:42
  • Via comando Netsh voce também consegue inserir o GW.

    Explicando o script

    for /F "eol=; tokens=1,2,* delims=," %%a in (base.txt) do netsh interface ip set address name="<Sua_Conexão>" static %%a %%b %%c

    Fará um loop e listará tudo o que estiver no arquivo "base.txt". Imagine que seu arquivo esteja com o seguinte layout:

    192.168.0.2 255.255.255.0 1

    Isso equivale respectivamente as variaveisk %%i (IP) %%b (Mascara) %%c (metrica).

    Onde não consegui encontrar solução é o fato de, em cada maquina que esse script rodar ele deve pular para a próxima linha, senão você terá conflito de IP.

    quinta-feira, 8 de agosto de 2013 14:23
  • Wncardoso,

    Resolvido??


    Fábio de Paula Junior

    segunda-feira, 12 de agosto de 2013 21:46
    Moderador