Script de Powershell para cambiar de direccionamiento IP estático a dinámico

He estado trabajando en la validación de un plan de migración de servidor de correo electrónico que ha requerido la utilización de servidores de prueba aislados de la red de producción. Debido a que están fuera de la red, tengo que cambiar con frecuencia mi computadora portátil de la producción a redes de prueba, lo que implica reconfigurar mi tarjeta de red de direcciones IP dinámicas a estáticas.

Podría usar la capacidad de direccionamiento IP alternativo de Windows XP para cambiar las direcciones IP, pero encuentro que XP tarda varios minutos en realizar el cambio automático. Quería crear un script de configuración que hiciera los cambios deseados para poder guardar accesos directos a esos scripts en mi escritorio, lo que permitiría modificaciones rápidas en la configuración de NIC.

Originalmente intenté usar el comando netsh para especificar la configuración de NIC, pero a pesar de toda la sintaxis de ejemplo que encontré en línea, solo pude hacer que los cambios estáticos a dinámicos funcionen, no los dinámicos a estáticos.

Finalmente decidí usar Powershell para realizar estos cambios. Encontré los siguientes scripts en PowerShell Pro y los modifiqué ligeramente para mi propio uso.

### set static IP addressing - save as setstatic.ps1
 $NICs = Get-WMIObject Win32_NetworkAdapterConfiguration `
 | where{$_.IPEnabled -eq "TRUE"}
 Foreach($NIC in $NICs) {
   $NIC.EnableStatic("192.168.1.5", "255.255.255.0")
   $NIC.SetGateways("192.168.1.254")
   $DNSServers = "198.168.1.1","198.168.1.1"
   $NIC.SetDNSServerSearchOrder($DNSServers)
   $NIC.SetDynamicDNSRegistration("FALSE")
 }
 ###
### set dynamic addressing - save as setdynamic.ps1
 $NICs = Get-WMIObject Win32_NetworkAdapterConfiguration `
 | where{$_.IPEnabled -eq "TRUE"}
 Foreach($NIC in $NICs) {
  $NIC.EnableDHCP()
  $NIC.SetDNSServerSearchOrder()
 }
 ###

Luego creé accesos directos a los dos archivos .ps1 usando los siguientes objetivos:

%windir%system32WindowsPowerShellv1.0powershell.exe c:scriptssetdynamic.ps1

%windir%system32WindowsPowerShellv1.0powershell.exe c:scriptssetstatic.ps1

Guardé cada acceso directo en mi escritorio y ahora puedo cambiar las direcciones IP en unos 15 segundos.

Santiago
Los ordenadores siempre han sido una gran parte de mi vida. Decidí crear este sitio para plasmar todo lo aprendido durante tantos años trasteando con estás maquinas. Cuando no estoy editando mi web, me dedico a reparar aerogeneradores.

Deja un comentario