A ativação do DHCP via PowerShell resulta em duas conexões WiFi para a mesma rede

3

Eu tenho uma VM na minha configuração de rede como um gateway que eu uso às vezes, enquanto na maioria das vezes eu deixo meus PCs configurados para usar o DHCP e só tenho que passar pelo roteador. Eu estava trocando o manual pelo formulário de propriedades da conexão, mas decidi tentar criar scripts do PowerShell para simplificar o processo.

Também desabilito o IPv6 ao rotear pela VM, mas reativo quando uso o DHCP. Para mudar para usar a VM como um gateway eu uso isso:

# Get the adapter to change
$wmi = Get-WmiObject win32_networkadapterconfiguration -filter "ipenabled ='true'";

# Get current IPv4 address of host
$ip = $wmi.IpAddress[0];

# Configure adapter to use 192.168.1.135 as the default gateway
$wmi.EnableStatic($ip, "255.255.255.0");
$wmi.SetGateways("192.168.1.135", 1);
$wmi.SetDNSServerSearchOrder("192.168.1.135");

# Disable IPv6
Get-NetAdapterBinding | Where-Object {$_.ComponentID.Equals("ms_tcpip6")} | ForEach-Object {
    Disable-NetAdapterBinding -InterfaceAlias $_.Name -ComponentID ms_tcpip6
}

E isso funciona exatamente como quando eu o configuro manualmente. Minha conexão de rede normal muda para "NetworkName 2" no Centro de Rede e Compartilhamento. Para voltar ao DHCP, eu corro este script:

# Get the adapter to change
$wmi = Get-WmiObject win32_networkadapterconfiguration -filter "ipenabled ='true'";

# Configure adapter to use DHCP and automatic DNS
$wmi.EnableDHCP();
$wmi.SetDNSServerSearchOrder();

# Enable IPv6
Get-NetAdapterBinding | Where-Object {$_.ComponentID.Equals("ms_tcpip6")} | ForEach-Object {
    Enable-NetAdapterBinding -InterfaceAlias $_.Name -ComponentID ms_tcpip6
}

E depois, eu tenho duas conexões através de WiFi para minha rede, uma rede privada chamada "NetworkName" e uma rede pública chamada "NetworkName 3". O IPv6 e o DHCP estão ativados em ambos.

O que há com meu script DHCP que causa isso? Isso não aconteceu quando voltei para o DHCP através da caixa de diálogo.

Atualização: notei isso ao executar o ipconfig depois de voltar ao DHCP:

Wireless LAN adapter Wi-Fi:

   Connection-specific DNS Suffix  . : 
   IPv6 Address. . . . . . . . . . . : 2001:48f8:1042:732:889c:d2c1:37c9:804e
   Temporary IPv6 Address. . . . . . : 2001:48f8:1042:732:a085:fec9:46b9:3d8
   Link-local IPv6 Address . . . . . : fe80::889c:d2c1:37c9:804e%4
   IPv4 Address. . . . . . . . . . . : 192.168.1.141
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : fe80::4af8:b3ff:fe80:6530%4
                                       192.168.1.135
                                       192.168.1.1

Continua usando 192.168.1.135 como Gateway, junto com meu roteador normal - 192.168.1.1.

    
por Tyler O 19.07.2016 / 03:17

1 resposta

3

Isso foi comentado em aqui . Você não poderia remover o gateway usando este comando depois de ter o adaptador para alterar armazenado em $ wmi

Remove-NetRoute -InterfaceIndex $wmi.InterfaceIndex -NextHop 192.168.1.135

Como alternativa, você pode usar o netsh, conforme indicado pelo mesmo artigo:

Invoke-Expression ("netsh interface ipv4 set address index=""{0}"" source=dhcp" -f $wmi.InterfaceIndex)

O netsh se comporta da mesma maneira que a GUI.

    
por 25.04.2017 / 06:59