¿Qué más hace "netsh int ip reset" hacer?

De acuerdo con este artículo de KB cuando ejecuta el command "netsh int ip reset", todo lo que hace es restablecer el contenido de dos keys del logging:

SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ SYSTEM\CurrentControlSet\Services\DHCP\Parameters\ 

pero en mi sistema de testing parece hacer más que eso.

En una máquina Windows Server 2012 R2 x64, después de que mi aplicación hace algo malo, si bash configurar un IP estático a una interfaz de networking, obtengo un BSOD instantáneo.

Para solucionar el problema tengo que ejecutar "netsh int ip reset" y luego puedo establecer una IP estática. Ahora, estoy tratando de averiguar cómo funciona "netsh int ip reset" solucionar el problema.

Sé que no es el contenido de esas 2 keys del logging porque hice lo siguiente en mi máquina virtual:

  • Hacer una copy de security de VM cuando el sistema está en problemas.
  • Inicie la máquina virtual y ejecute el command "netsh int ip reset"
  • Exportar las dos keys del Registro
  • Retroceda a la copy de security realizada antes del command "netsh int ip reset"
  • Importar las keys de los loggings guardados
  • Configurar una IP estática en una interfaz de networking, pero aún así get un BSOD

Cuando mi aplicación intenta configurar una interfaz de networking con una dirección IP que ya fue utilizada por otra interfaz de networking en el pasado, primero tiene que eliminar esa configuration de IP para el dispositivo no presente y, a continuación, puede utilizar esa IP.

Para ello, busca en todos los loggings de SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ Interfaces y ve si alguna de las interfaces utiliza la dirección IP que quiero usar comparando el valor en la propiedad "IPAddress" con la que quiero usar. Si encuentra una coincidencia, primero verifica si esa interfaz está en vivo, y si no lo es, elimina el valor en la propiedad "IPAddress" y establece la propiedad "EnableDHCP" en 1, entonces puedo usar ese IP en mi interfaz. Esto es lo que mi aplicación hizo mal. Cuando esta interfaz vuelve a funcionar de nuevo, se establecerá una configuration de IP a través de DHCP, pero se BSOD si se intenta establecer un IP estático en él. La forma correcta de hacerlo es establecer la propiedad "IPAddress" en "0.0.0.0" y "EnableDHCP" en 1. Si deja "IPAddress" vacío y establece "EnableDHCP" en 1, algo va mal en la configuration TCPIP, netsh int ip reset "se arreglará .. pero lo que se arregla exactamente, no tengo ni idea. Lo único que sé es que no está en las dos keys de logging que menciona el artículo de KB .

Entonces, ¿qué más hace "netsh int ip reset" hacer, excepto restablecer el contenido de esos dos loggings, que corrige el problema en mi sistema de testing?

Ese mismo artículo de KB menciona que al ejecutar el command se saveá un file de logging resetlog.txt. ¿Qué dice ese logging?

También puede ejecutar Process Monitor desde SysInternals y hacer que supervise su command netsh.

Hice esto en mi estación de trabajo de Windows 8.1, filtrando la salida de ProcMon por el "nombre de process> contiene> netsh" y tiré sobre 5.000 resultados. Parece que hay mucho que hacer cuando se ejecuta este command. Lo siento, pero no voy a analizar todo el resultado para usted 🙂