O que mais o “netsh int ip reset” faz?

3

De acordo com este artigo da KB quando você executa o comando "netsh int ip reset", tudo o que ele faz é redefinir o conteúdo de duas chaves de registro:

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

mas no meu sistema de teste parece fazer mais do que isso.

Em uma máquina Windows Server 2012 R2 x64, depois que meu aplicativo faz algo errado, se eu tentar configurar um IP estático em uma interface de rede, obtenho BSOD instantâneo.

Para corrigir o problema, tenho que executar o "netsh int ip reset" e, em seguida, posso definir um IP estático. Agora, estou tentando descobrir como o "netsh int ip reset" corrige o problema.

Eu sei que não é o conteúdo dessas duas chaves de registro porque fiz o seguinte em minha máquina virtual:

  • Faça um backup da VM quando o sistema estiver com problemas.
  • Inicie a VM e execute o comando "netsh int ip reset"
  • Exportar as duas chaves de registro
  • Reverter para o backup feito antes do comando "netsh int ip reset"
  • Importe as chaves dos registros salvos
  • Configure um IP estático em uma interface de rede, mas ainda recebo um BSOD

Quando meu aplicativo tenta configurar uma interface de rede com um endereço IP que já foi usado por outra interface de rede no passado, primeiro ele precisa remover essa configuração de IP para o dispositivo não presente e, em seguida, usar esse IP.

Para fazer isso, ele procura em cada registro em SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parâmetros \ Interfaces e vê se alguma das interfaces usou o endereço IP que eu quero usar comparando o valor na propriedade "IPAddress" com o um que eu quero usar. Se encontrar uma correspondência, primeiro verificará se essa interface está ativa e, se não estiver, excluirá o valor na propriedade "IPAddress" e definirá a propriedade "EnableDHCP" como 1, então eu posso usar esse IP na minha interface. Isso é o que meu aplicativo fez de errado. Quando esta interface voltar a funcionar novamente, irá definir uma configuração IP através do DHCP, mas será BSOD se você tentar definir um IP estático. A maneira correta de fazer isso é definir a propriedade "IPAddress" como "0.0.0.0" e "EnableDHCP" como 1. Se você deixar "IPAddress" vazio e definir "EnableDHCP" como 1, algo está errado na configuração TCPIP, que " netsh int ip reset "vai consertar .. mas o que exatamente isso corrige, não tenho idéia. Tudo o que sei é que não estão nas duas chaves de registro mencionadas pelo artigo da KB .

Então, o que mais o "netsh int ip reset" faz, exceto redefinir o conteúdo desses dois registros, que corrige o problema no meu sistema de teste?

    
por Chris 11.12.2013 / 17:03

1 resposta

1

Esse mesmo artigo da KB menciona que a execução do comando salvará um arquivo de log resetlog.txt. O que esse log diz?

Você também pode executar o Process Monitor da SysInternals e fazer com que ele monitore seu comando netsh.

Eu fiz isso na estação de trabalho do Windows 8.1, filtrando a saída do ProcMon por "nome do processo > contém > netsh" e obtive mais de 5.000 resultados. Parece que há muita coisa acontecendo quando você executa esse comando. Desculpe, mas não vou analisar toda a saída para você:)

    
por 11.12.2013 / 18:08