Buscar

Script de CMD para cambiar la IP del equipo

A continuación veremos un script de CMD para cambiar de forma automática la configuración TCP/IP del equipo:

Script de CMD para cambiar la IP del equipo

La opción A y B configuran una IP estática con una puerta de enlace. La opción C configura DHCP.

Contenido del script:

@echo off 
set IP_Addr=192.168.2.10
set Sub_Mask=255.255.255.0


:choice 
cls
echo Choose: 
echo [A] Set Static IP 192.168.2.10 gw 192.168.2.254
echo [B] Set Static IP 192.168.2.10 gw 192.168.2.5
echo [C] Set DHCP
echo [Z] Quit 
echo. 

SET /P C=[A,B,C,Z]? 
for %%? in (A) do if /I "%C%"=="%%?" goto A 
for %%? in (B) do if /I "%C%"=="%%?" goto B 

for %%? in (C) do if /I "%C%"=="%%?" goto C
for %%? in (Z) do if /I "%C%"=="%%?" goto Z
goto choice 
:A 
set D_Gate=192.168.2.254

echo "Setting Static IP Information" 
netsh interface ip set address "LAN" static %IP_Addr% %Sub_Mask% %D_Gate% 1 
netsh int ip show config 
pause 
goto choice

:B
set D_Gate=192.168.2.5

echo "Setting Static IP Information" 
netsh interface ip set address "LAN" static %IP_Addr% %Sub_Mask% %D_Gate% 1 

netsh int ip show config 
pause 
goto choice

:C 
@ECHO OFF 
ECHO Resetting IP Address and Subnet Mask For DHCP 
netsh int ip set address name = "LAN" source = dhcp


ipconfig /renew

ECHO Here are the new settings for %computername%: 
netsh int ip show config

pause 
goto choice


:Z
exit
:end

Nota sobre el script:
- El nombre del interfaz de red es "LAN", para adaptar el script a nuestro entorno deberemos verificar el nombre de nuestro interfaz de red. Es posible que el nombre sea: "Conexión de área local"




13 comentarios:

  1. Hola!
    A ver si me puedes ayudar... si ejecuto las instrucciones desde cmd me funcionan, pero si las encapsulo en un script me da el siguiente error:

    "El nombre de archivo, el nombre de directorio o la sintaxis de la etiqueta del volumen no son correctos."

    Alguna idea?
    Gracias!

    ResponderEliminar
    Respuestas
    1. Algunas cosas a verificar:

      ¿La extensión del script es .BAT?

      ¿Tienes configurado en el explorador de Windows que muestre extensiones?

      ¿Lo estas ejecutando en el directorio donde está situado el script?

      Puedes cambiar la primera linea del script de echo off a echo on y verás cada linea de comando y su respuesta.

      Puedes colocar varios comandos pause en el script para ver en que punto falla.

      Ya nos contarás!

      Un saludo!

      Eliminar
    2. Si, es un bat y se ejecuta bien, la única líena de código que no le gusta es esta:
      *****
      netsh interface ip set address "Conexión de área local" static 192.168.1.50 255.255.255.0 192.168.1.1 1
      *****

      Pero si se la ejecuto directamente en el CMD se la traga bien y la ejecuta correctamente... sólo falla desde el script (que lo ejecuto en modo admin)

      Eliminar
    3. Tiene pinta de ser los acentos de las palabras "Conexión" y "área". Prueba de renombrar el nombre del interface a por ejemplo: LAN.

      ¡Ya nos contarás!

      Eliminar
  2. Hola hay alguna manera de que le pueda configurar dentro del archivo el user y pass de administrador con privilegios admin y otra cosa estoy utilizando esto para que me solicite el password :

    echo off
    :: BatchGotAdmin
    :-------------------------------------
    REM --> Check for permissions
    >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
    REM --> If error flag set, we do not have admin.
    if '%errorlevel%' NEQ '0' ( echo Requesting administrative privileges... goto UACPrompt) else ( goto gotAdmin )
    :UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
    "%temp%\getadmin.vbs"
    exit /B
    :gotAdmin
    chkdsk

    pero luego no ejecuta : netsh int ip set address name = "LAN" source = dhcp porque dice " el nombre del archivo, el nombre del directorio o la sintaxis de la etiqueta del volumen no son correctos"

    te paso alguna vez?

    ResponderEliminar
    Respuestas
    1. Hola Victor,

      Si lo que quieres es lanzar el script con unas credenciales concretas, una de las formas es utilizar la herramienta gratuita psexec de sysinternals y con parámetros especificar las credenciales que quieras.

      Un saludo!

      Xavi.

      Eliminar
  3. Hola SYSADMINIT saludos desde Guatemala, me ayudo de mucho tu script para modificar la IPv4 ya que tengo un Equipo(Portátil) pegado a un Dominio y se tiene un FORTIGATE donde no me deja conectarme si no tiene cierta IP para cada lugar y se tiene que cambiar la ip cada vez que viaja, pero es tedioso conectarse remotamente para configurarle la IP sin darle la contraseña de Administrador.

    Por lo que realice unas modificaciones a tu script pero dado a que el archivo .BAT o .CMD no reconoce tildes y para la modificación de set address "Conexión de área local" lleva tilde, realice lo siguiente:
    1.- Abrir un Bloc de Notas y Guarde todo el código con el nombre de IP.CMD con la codificación: UNICODE
    2.- Abri CMD y me dirigí al escritorio con lo siguiente: type IP.cmd > nuevoIP.cmd y vualá. me detecta la tildes.
    3.- El inconveniente siguiente era que no podía darle la contraseña de administrador de dominio al usuario final por lo que realice lo siguiente:
    3.1 Guarde el Archivo en el disco local c
    3.2 cree un acceso directo al escritorio y le di en propiedades en la pestaña de acceso directo -> destino le antepuse lo siguiente:
    3.2.1 runas /user:nombreDelDominio\Administrador /savecred -- (1.- runas ejecuta el cmd en modo Administrador 2.- /savecred (guarda la contraseña))

    Y me Quedo Perfecto, tal y como quería alguna sugerencia o comentario, espero que talvez le sirva a alguien mas que empieza en el gran mundo de la Informática.

    ResponderEliminar
  4. muy buen aporte me sirvio perfecto saludos desde cuba

    ResponderEliminar
  5. Excelente aporte. Saludos desde Colombia

    ResponderEliminar
  6. excelente, ejecuten como administrador y tengan en cuenta el nombre de la interface y listo

    ResponderEliminar