A continuación veremos un script de CMD para cambiar de forma automática la configuración TCP/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"
Hola!
ResponderEliminarA 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!
Algunas cosas a verificar:
Eliminar¿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!
Si, es un bat y se ejecuta bien, la única líena de código que no le gusta es esta:
Eliminar*****
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)
Tiene pinta de ser los acentos de las palabras "Conexión" y "área". Prueba de renombrar el nombre del interface a por ejemplo: LAN.
Eliminar¡Ya nos contarás!
BINGO!
EliminarMil gracias!
Gracias a ti!!
EliminarHola 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 :
ResponderEliminarecho 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?
Hola Victor,
EliminarSi 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.
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.
ResponderEliminarPor 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.
¡Muchas gracias por tu aporte!
EliminarUn saludo,
Xavi.
muy buen aporte me sirvio perfecto saludos desde cuba
ResponderEliminarExcelente aporte. Saludos desde Colombia
ResponderEliminarexcelente, ejecuten como administrador y tengan en cuenta el nombre de la interface y listo
ResponderEliminar