Cómo escribir un script de Windows para cambiar la configuración de red sobre la marcha

  • Harry James
  • 0
  • 1631
  • 142
Anuncio

Esta semana, me topé con un problema interesante. En muchas oficinas o entornos de trabajo, es posible que deba redefinir la configuración de su red para conectarse a diferentes redes. Por ejemplo, algunas personas se llevan su computadora portátil a casa y tienen una IP estática configurada específicamente para esa máquina. Sin embargo, dado que la red de trabajo suele ser DHCP, eso requiere que la persona siga cambiando la configuración de red entre una IP estática o DHCP automática, dependiendo de dónde se encuentren..

Un problema más común es para los ingenieros o el personal de TI que a menudo necesitan conectarse a dispositivos o máquinas en una red pequeña dentro de un edificio. Para conectarse a esa red aislada, debe cambiar la configuración de su red a una IP estática. Más tarde, cuando se vuelve a conectar a la red corporativa, vuelve a DHCP.

Me encontré en esta situación con la suficiente frecuencia, y me cansé tanto de buscar la tarjeta de red, abrir la configuración de IP y hacer esas ediciones, que decidí que era hora de armar un script VB que lo hiciera todo en uno o dos clics Si has seguido mis artículos de programación, entonces sabes que me encantan los scripts de VB. Una vez lo usé para crear una computadora poseída. Crear una computadora loca poseída con Windows Script para Halloween Crear una computadora loca poseída con Windows Script para Halloween. Hay muchas bromas divertidas que puedes jugar con tus amigos en una computadora. Probablemente hayas visto todos esos videos espeluznantes de YouTube que las personas se reenvían entre sí por un buen susto ..., y también solían automatizar Microsoft SyncToy Cómo crear una herramienta de respaldo de datos con SyncToy y VB Script Cómo crear una herramienta de respaldo de datos Con SyncToy y VB Script Hemos cubierto muchas soluciones de respaldo aquí en MUO, y todas estas soluciones son geniales, pero si está trabajando en un entorno que desconfía de los paquetes de software gratuitos de terceros, o las empresas ... para obtener datos copias de seguridad.

También es posible realizar esta tarea con el script VB, e incluso es posible hacerlo lo suficientemente flexible para que pueda aceptar la entrada del usuario para la dirección IP estática. En este artículo, te mostraré cómo hacerlo en tres secciones..

Crear una secuencia de comandos de cambio de configuración de red

Hay tres tareas principales que debe realizar con el script para crear esta pequeña aplicación para cambiar la configuración de red. El primero es usar el script para crear configuraciones de IP estáticas. Lo siguiente es crear un script para habilitar DHCP. Finalmente, lo último es preguntarle al usuario qué tarea quiere hacer, y luego usar esa retroalimentación para lograrlo.

VB Script para establecer la configuración de IP estática

Recuerde, las siguientes secuencias de comandos deben guardarse como un archivo de texto con una extensión .wsf para funcionar en una PC con Windows. El siguiente script cambiará la configuración de su red a una IP estática con una máscara de subred específica y una puerta de enlace predeterminada, con los tres codificados en el script.

Para todos los ejemplos de código enumerados en este artículo, asegúrese de agregar “” al principio y “ al final, de lo contrario el código no se ejecutará.
Aquí está el script de cambio de IP estático:

Opción explícita al error Reanudar siguiente Dim objWMIService Dim objNetAdapter Dim strComputer Dim arrIPAddress Dim arrSubnetMask Dim arrGateway Dim colNetAdapters Dim errEnableStatic Dim errGateways strComputer = "." arrIPAddress = Array ("192.168.1.106") arrSubnetMask = Array ("255.255.255.0") arrGateway = Array ("192.168.1.1") Establecer objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2" ) Establecer colNetAdapters = objWMIService.ExecQuery ("Seleccionar * de Win32_NetworkAdapterConfiguration donde IPEnabled = TRUE") Para cada objNetAdapter en colNetAdapters errEnableStatic = objNetAdapter.EnableStatic (arrIPAddress. " Fin Si errGateways = objNetAdapter.SetGateways (arrGateway) Si no es errGateways = 0 Entonces WScript.Echo "Error al asignar Gateway". Fin si el siguiente WScript.Quit

Este script utiliza el servicio WMI de Windows en Windows para lograr el objetivo de cambiar la configuración. Puede ver las tres variables de matriz fija cargadas con las direcciones IP, y luego dónde el script verifica si está activo “habilitado” tarjeta de red. Luego usa el “EnableStatic” y “SetGateways” métodos para hacer esos cambios requeridos. Cuando ejecuto la secuencia de comandos en mi red doméstica (donde necesito DHCP), puede ver dónde la secuencia de comandos cambió con éxito la configuración de mi adaptador y perdí mi conexión a Internet.

Después de probar que la parte de IP estática del script funciona, es hora de escribir el script que configurará el adaptador a DHCP para que detecte automáticamente la IP de la red. Aquí está el script que puedes usar para hacer eso.

Opción explícita al error Reanudar siguiente Dim objWMIService Dim objNetAdapter Dim strComputer Dim errEnable strComputer = "." Establezca objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2") Establezca colNetAdapters = objWMIService.ExecQuery ("Seleccione * de Win32_NetworkAdapterConfiguration donde IPEnabled = TRUE") Para cada objNetAdapter.ErE.E.C. ) Siguiente WScript.Quit

Como puede ver, este script es mucho más simple. También usa WMI, pero la única función requerida es “EnableDHCP”. Esto se realiza en el adaptador de red habilitado actualmente. Después de guardar y ejecutar este script, la configuración de mi tarjeta adaptadora volvió a DHCP y mi conexión a Internet estaba funcionando nuevamente.

Entonces, ahora que tiene el código para realizar las dos acciones importantes, la siguiente parte de este truco será tomar la entrada del usuario para determinar exactamente qué IP estática quieren. Para volver a habilitar DHCP, puede solicitar al usuario que ingrese la palabra “AUTO” para detectar automáticamente la IP.
Así es como se ve este nuevo script completo que incorpora los dos scripts anteriores.

Opción explícito en error Reanudar Siguiente Dim objWMIService Dim objNetAdapter Dim strComputer Dim arrIPAddress Dim arrSubnetMask Dim arrGateway Dim colNetAdapters Dim errEnableStatic Dim errGateways Dim strInput Dim errFailed errFailed = 0 strInput = InputBox ("AUTO Static IP" Entonces strComputer = "." Establezca objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2") Establezca colNetAdapters = objWMIService.ExecQuery ("Seleccione * de Win32_NetworkAdapterConfiguration donde IPEnabled = TRUE") Para cada objNetAdapter.ErE.E.C. ) Si no es errEnable = 0, entonces WScript.Echo "Falló la configuración de DHCP". errFailed = 1 End If Next Else strComputer = "." arrIPAddress = Array (strInput) arrSubnetMask = Array ("255.255.255.0") arrGateway = Array ("192.168.1.1") Establecer objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2") Establecer colNetAdapters = objWMIService.ExecQuery ("Seleccione * de Win32_NetworkAdapterConfiguration donde IPEnabled = TRUE") Para cada objNetAdapter en colNetAdapters errEnableStatic = objNetAdapter.EnableStatic (arrIPAddress, arrSubnetMask) Si no es un error. errFailed = 1 End If errGateways = objNetAdapter.SetGateways (arrGateway) Si no es errGateways = 0 Entonces WScript.Echo "Error al asignar Gateway". errFailed = 1 End If Next End If If errFailed = 0 Entonces WScript.Echo "Configuración de IP modificada con éxito". Finalizar si WScript.Quit

Este script utiliza la función InputBox para obtener la IP estática o la “AUTO” comando del usuario.

Si algo más que “AUTO” se escribe en el campo, que se usará como la cadena de IP estática en la sección de código que usa WMI para establecer la configuración de IP estática para el adaptador de red. También hay un cheque para el “0 0” confirmación diciendo que todo salió bien.

Al verificar la configuración de mi tarjeta de red después de ejecutar el script, confirme que el script realmente hizo cambios en la configuración de IP estática.

Ahora para probar el script AUTO. Escribir AUTO satisface la primera condición en el “SI” comprobación de estado para AUTO. Esto ejecuta el script alternativo que habilita DHCP.

Después de ejecutar esto, entré en la configuración de mi adaptador y, efectivamente, se volvió a configurar para obtener una dirección IP automáticamente.

Si bien puede ser una tarea lo suficientemente simple como para ir a la configuración de su tarjeta de red y cambiar a estática o DHCP, si tiene que hacerlo con mucha frecuencia, puede convertirse en un verdadero dolor. Puedes hacerlo desde una línea de comando usando “netsh”, pero de nuevo, debe recordar la sintaxis del comando.

El uso del script anterior le permite crear una utilidad rápida y fácil que puede usar en cualquier momento para cambiar la configuración de su red sobre la marcha.

¿Crees que podrías probar este script de Windows? ¿Alguna otra idea para modificarlo y hacerlo aún mejor? Comparta sus pensamientos y sugerencias en la sección de comentarios a continuación..

Crédito de imagen: códigos binarios a través de Shutterstock




Nadie ha comentado sobre este artículo todavía.

Sobre tecnología moderna, simple y asequible.
Tu guía en el mundo de la tecnología moderna. Aprenda a usar las tecnologías y los dispositivos que nos rodean todos los días y aprenda a descubrir cosas interesantes en Internet.