En entornos profesionales, es común la necesidad de alternar frecuentemente entre redes internas que requieren una configuración de IP estática y redes externas o de invitados que funcionan mediante DHCP (obtención automática). Realizar este proceso manualmente a través de la interfaz gráfica de Windows puede resultra tedioso. Una solución eficiente es el uso de scripts de comandos (.bat) para automatizar esta tarea.
1. Script de configuración automatizada
El siguiente código permite alternar entre una configuración de red fija y una dinámica. Se ha diseñado para solicitar privilegios de administrador de forma automática, necesarios para modificar los parámetros de red del sistema.
@echo off
:: Solicitar privilegios de administrador
setlocal DisableDelayedExpansion
set "batchPath=%~0"
for %%k in (%0) do set batchName=%%~nk
set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"
setlocal EnableDelayedExpansion
:checkPrivileges
net session >nul 2>&1
if %errorLevel% == 0 ( goto :adminRights ) else ( goto :getPrivileges )
:getPrivileges
echo set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
echo args = "ELEV " >> "%vbsGetPrivileges%"
echo For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
echo args = args ^& strArg ^& " " >> "%vbsGetPrivileges%"
echo Next >> "%vbsGetPrivileges%"
echo UAC.ShellExecute "cmd.exe", "/c ""%batchPath%"" " ^& args, "", "runas", 1 >> "%vbsGetPrivileges%"
"%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %*
exit /B
:adminRights
if exist "%vbsGetPrivileges%" ( del "%vbsGetPrivileges%" )
:: Configuración de variables de red
set interfaz="Ethernet 2"
set ip_fija=100.101.0.19
set mascara_red=255.255.255.0
set puerta_enlace=100.101.0.1
set dns_primario=8.8.8.8
set dns_secundario=8.8.4.4
:menu
cls
echo ============================================
echo GESTOR DE CONFIGURACION DE RED
echo ============================================
echo 1. Establecer IP Estatica (Oficina)
echo 2. Establecer IP Dinamica (DHCP)
echo 3. Salir
echo ============================================
set /p opcion="Seleccione una opcion: "
if %opcion%==1 goto estatica
if %opcion%==2 goto dinamica
if %opcion%==3 exit
:estatica
echo Aplicando direccion IP fija: %ip_fija%...
netsh interface ipv4 set address name=%interfaz% static %ip_fija% %mascara_red% %puerta_enlace%
echo Configurando Servidores DNS...
netsh interface ipv4 set dns name=%interfaz% static %dns_primario%
if not "%dns_secundario%"=="" netsh interface ipv4 add dns name=%interfaz% %dns_secundario% index=2
echo Configuracion estatica completada.
pause
goto menu
:dinamica
echo Cambiando a DHCP...
netsh interface ipv4 set address name=%interfaz% source=dhcp
netsh interface ipv4 set dns name=%interfaz% source=dhcp
echo Configuracion DHCP activada exitosamente.
pause
goto menu
2. Preparación y ejecución del archivo
Para implementar esta solución en su equipo, siga estos pasos técnicos:
- Creación del archivo: Copie el código anterior en un editor de texto plano (como el Bloc de notas).
- Codificación crítica: Al guardar el archivo, asegúrese de seleccionar la codificación ANSI. Esto es vital para que el sistema reconozca correctamente caracteres especiales o espacios en los nombres de las interfaces de red (por ejemplo, "Conexión de área local").
- Extensión: Guarde el archivo con la extensión
.bat, por ejemplo:GestionRed.bat.
3. Identificación del nombre de la interfaz
El script utiliza la variable interfaz para identificar qué tarjeta de red debe modificar. Es imperativo que el nombre coincida exactamente con el que muestra Windows.
Para verificarlo, puede abrir una consola de comandos y ejecutar:
netsh interface ipv4 show interfaces
Sustituya "Ethernet 2" en el script por el nombre exacto que aparezca en su columna de "Nombre".
4. Funcionamiento
Al ejecutar el archivo, el sistema solicitará confirmación para elevar privilegios. Una vez aceptado, se desplegará un menú interactivo. Al elegir la opción 1, se aplicarán los valores predefinidos en las variables de configuración estática. La opción 2 restaurará la configuración automática del protocolo TCP/IP, liberando cualquier dirección fija y solicitando una nueva al servidor DHCP de la red actual.