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 un DHCP automático, 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 nuevamente.
Me encontré en esta situación con la suficiente frecuencia, y me cansé de navegar a la tarjeta de red, abriendo la configuración de IP y haciendo esas ediciones, decidí que ya 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 Crea una computadora extraña poseída con Windows Script para HalloweenHay muchas bromas divertidas que puedes jugar con tus amigos con una computadora. Probablemente hayas visto todos esos videos espeluznantes de YouTube que las personas se reenvían entre sí por un buen susto ... Lee mas , y también solía automatizar Microsoft SyncToy Cómo crear una herramienta de copia de seguridad de datos con SyncToy y VB ScriptHemos cubierto muchas soluciones de respaldo aquí en MUO, y todas estas soluciones son excelentes, pero si está trabajando en un entorno que desconfía de los paquetes de software gratuitos de terceros, o de las empresas ... Lee mas para copias de seguridad de datos.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, le 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 "
Aquí está el script de cambio de IP estático:
Opción explícita en caso de 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") Establezca colNetAdapters = objWMIService. ExecQuery ("Seleccione * de Win32_NetworkAdapterConfiguration donde IPEnabled = TRUE") para cada objNetAdapter en colNetAdapters errEnableStatic = objNetAdapter. EnableStatic (arrIPAddress, arrSubnetMask) Si no es errEnableStatic = 0 Entonces WScript. Eco "Error al asignar IP / subred". Fin si errGateways = objNetAdapter. SetGateways (arrGateway) Si no es errGateways = 0 Entonces WScript. Eco "Error al asignar la puerta de enlace". Fin si es siguiente. WScript Dejar
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 donde el script comprueba la tarjeta de red activa "habilitada". Luego utiliza los métodos "EnableStatic" y "SetGateways" para realizar los cambios necesarios. 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 de la secuencia de comandos funciona, es hora de escribir la secuencia de comandos 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 en caso de error Reanudar siguiente Dim objWMIService. Dim objNetAdapter. Dim strComputer. Dim errEnable strComputer = "." Establecer objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2") Establezca colNetAdapters = objWMIService. ExecQuery ("Seleccione * de Win32_NetworkAdapterConfiguration donde IPEnabled = TRUE") para cada objNetAdapter en colNetAdapters errEnable = objNetAdapter. EnableDHCP () Siguiente WScript. Dejar
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ícita en caso de 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 ("Escriba la dirección IP estática o AUTO") Si strInput = "AUTO" Entonces strComputer = "." Establecer objWMIService = GetObject ("winmgmts: \\" & strComputer & "\ root \ cimv2") Establecer colNetAdapters = objWMIService. ExecQuery ("Seleccione * de Win32_NetworkAdapterConfiguration donde IPEnabled = TRUE") para cada objNetAdapter en colNetAdapters errEnable = objNetAdapter. EnableDHCP () Si no es errEnable = 0 Entonces WScript. Eco "Error al configurar 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 errEnableStatic = 0 Entonces WScript. Eco "Error al asignar IP / subred". errFailed = 1 End If errGateways = objNetAdapter. SetGateways (arrGateway) Si no es errGateways = 0 Entonces WScript. Eco "Error al asignar la puerta de enlace". errFailed = 1 End If Next End If If errFailed = 0 Entonces WScript. Eco "Configuración de IP modificada con éxito". Finalizar si WScript. Dejar
Este script utiliza la función InputBox para obtener la IP estática o el comando "AUTO" del usuario.
Si se escribe algo diferente a "AUTO" en el campo, 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 la confirmación "0" que dice que todo salió bien.
Al verificar la configuración de mi tarjeta de red después de ejecutar el script, confirmó que el script realmente hizo cambios en la configuración de IP estática.
Ahora para probar el script AUTO. Al escribir AUTO se cumple la primera condición en la instrucción "IF" que comprueba 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. Puede hacerlo desde una línea de comando usando "netsh", pero nuevamente, 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.
Credito de imagen:Códigos binarios a través de Shutterstock
Ryan tiene una licenciatura en ingeniería eléctrica. Ha trabajado 13 años en ingeniería de automatización, 5 años en TI y ahora es ingeniero de aplicaciones. Ex editor jefe de MakeUseOf, ha hablado en conferencias nacionales sobre visualización de datos y ha aparecido en la televisión y radio nacionales.