AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1626047
Accepted
Jonesome Reinstate Monica
Jonesome Reinstate Monica
Asked: 2021-02-15 18:44:00 +0800 CST2021-02-15 18:44:00 +0800 CST 2021-02-15 18:44:00 +0800 CST

Powershell: Como descobrir adapterIndex para interface para público?

  • 772

Eu uso um script powershell para definir manualmente meu DNS .

Isso funciona muito bem, mas à medida que me movo entre wifi e duas estações de encaixe diferentes, o "ifIndex" de get-NetAdapter muda.

Apenas filtrar por "Up" não voa, porque existem várias interfaces Up (veja abaixo)

Estou pensando que preciso detectar a interface que está Up e é a rota para o público (por exemplo, na rota para o google.com ou algo público).

Como fazer isso?

PS C:\Users\joe> get-netadapter

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
Ethernet                  TAP-ProtonVPN Windows Adapter V9             32 Disconnected 00-FF-F9-EE-DD-E4         1 Gbps
VMware Network Adapte...1 VMware Virtual Ethernet Adapter for ...      30 Up           00-50-56-EE-DD-01       100 Mbps
Wi-Fi                     Dell Wireless 1820A 802.11ac                 25 Up           C8-FF-28-EE-DD-4D       702 Mbps
VMware Network Adapte...8 VMware Virtual Ethernet Adapter for ...      24 Up           00-50-56-EE-DD-08       100 Mbps
Bluetooth Network Conn... Bluetooth Device (Personal Area Netw...      15 Disconnected C8-FF-28-EE-DD-4E         3 Mbps
vEthernet (Default Swi... Hyper-V Virtual Ethernet Adapter             22 Up           00-15-5D-EE-DD-F0        10 Gbps
vEthernet (WSL)           Hyper-V Virtual Ethernet Adapter #2          38 Up           00-15-5D-EE-DD-00        10 Gbps
powershell
  • 2 2 respostas
  • 5525 Views

2 respostas

  • Voted
  1. Vomit IT - Chunky Mess Style
    2021-02-15T18:59:35+08:002021-02-15T18:59:35+08:00

    Você pode usar get-netroute para obter o número de índice do adaptador com o valor 0ou falseque é a métrica mais baixa e, portanto, o adaptador que deve ser o padrão para o tráfego a ser usado.

    PowerShell

    Get-NetRoute | % { Process { If (!$_.RouteMetric) { $_.ifIndex } } };
    Set-DNSClientServerAddress –interfaceIndex $intix –ServerAddresses ("127.0.0.1","1.1.1.2");
    

    Amostra de saída

    Comando: Get-NetRoute | Select InterfaceAlias, InterfaceIndex, RouteMetric | FL

    InterfaceAlias : Loopback Pseudo-Interface 1
    InterfaceIndex : 1
    RouteMetric    : 256
    
    InterfaceAlias : Wi-Fi 3
    InterfaceIndex : 7
    RouteMetric    : 0
    
    InterfaceAlias : Local Area Connection* 12
    InterfaceIndex : 14
    RouteMetric    : 256
    
    InterfaceAlias : Local Area Connection* 11
    InterfaceIndex : 27
    RouteMetric    : 256
    

    Recursos de apoio

    • Get-NetRoute
    • Set-DnsClientServerAddress
    • ForEach-Object

      Alias ​​padrão para Foreach-Object: o %símbolo ' ', ForEach

    • Se()
    • 5
  2. Best Answer
    swbbl
    2021-02-15T23:34:23+08:002021-02-15T23:34:23+08:00

    A @Drink More Pimp Juice IT já mencionou uma solução simples, que funciona se houver only one network adapterum gateway padrão habilitado e ativo.

    Se você tiver vários adaptadores de rede habilitados e ativos ao mesmo tempo, o que acontece quando você usa um Laptop que não desabilita ou desconecta o adaptador WiFi quando conectado via Ethernet, você terá duas rotas com métrica de rota de 0, mas com diferentes InterfaceMetric.

    Quando as rotas são configuradas manualmente, também é possível que a métrica de rota da rota padrão não seja 0.

    Solução

    Se você deseja obter a rota padrão global do sistema operacional nesses casos, você deve obter o total de RouteMetrice InterfaceMetricusar as rotas padrão para IPv4 e IPv6 como filtro de destino.

    O comando a seguir obtém a rota padrão do seu sistema operacional usando as rotas padrão IPv4 e IPv6.

    Get-NetRoute -DestinationPrefix '0.0.0.0/0', '::/0' |
        Sort-Object -Property { $_.InterfaceMetric + $_.RouteMetric } |
        Select-Object -First 1
    

    Você pode remover o prefixo de destino IPv6 '::/0'se quiser apenas determinar a rota IPv4.

    Com o Índice de Interface de retorno, ifIndexvocê pode alterar o respectivo adaptador de rede. Também é possível canalizar a saída acima diretamente para Get-NetAdapterqualquer outro cmdlet que aceite InterfaceIndex como propriedade nomeada.

    PowerShell 6+

    A partir do PowerShell 6, podemos simplificar o comando, pois há o novo parâmetro Topdisponível para Sort-Object.

    Get-NetRoute -DestinationPrefix '0.0.0.0/0', '::/0' |
        Sort-Object -Property { $_.InterfaceMetric + $_.RouteMetric } -Top 1 
    

    Recursos informativos

    • Configurar a ordem das interfaces de rede
      https://docs.microsoft.com/en-us/windows-server/networking/technologies/network-subsystem/net-sub-interface-metric

      Quando as rotas de tráfego de rede são escolhidas e você configurou o parâmetro InterfaceMetric do comando Set-NetIPInterface, a métrica geral usada para determinar a preferência da interface é a soma da métrica da rota e da métrica da interface . Normalmente, a métrica de interface dá preferência a uma interface específica, como usar com fio, se tanto com fio quanto sem fio estiverem disponíveis.

    • Uma explicação do recurso Métrica Automática para rotas IPv4
      https://docs.microsoft.com/en-us/troubleshoot/windows-server/networking/automatic-metric-for-ipv4-routes

    • 4

relate perguntas

  • Como colocar string variável em array no powershell?

  • Powershell e regex: lista de arquivos "backup ao salvar" do Notepad ++. Editar nome, classificar por lastwritetime

  • Adicionando cor de primeiro plano ao perfil do Powershell?

  • Não é possível ativar o Microsoft Print to PDF depois de desativado

  • Posso fazer com que este script do PowerShell aceite vírgulas?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve