2 votos

Determinar si una NIC tiene acceso a Internet (vs local, red cerrada)

Hay alguna manera en PowerShell para determinar automáticamente que de varias tarjetas de red tiene acceso a Internet en lugar de una conexión a una red cerrada?

Decir, un equipo que tiene una NIC que por lo general pueden salir a la Web y otra NIC que está conectado a un pequeño dispositivo científico de la red. Ambos tienen direcciones IP y ver una "red". Es allí una manera genérica para determinar cuál es el Internet conectado?

Yo sé acerca de:

gwmi win32_networkadapterconfiguration -filter "ipenabled = 'true'"

y

gwmi win32_networkadapter -filter "NetConnectionStatus LIKE '2'"

y

Get-NetAdapter | ? {($_.status -eq 'up')

pero no es claro para mí que los filtros son la identificación de Internet de acceso vs acaba de acceso a la red, y por desgracia, no tengo acceso a una máquina con que tipo de instalación a prueba.

Gracias.

3voto

gor Puntos 11

El Test-Connection cmdlet le permite especificar la dirección de origen con el -Source parámetro. Podemos probar las direcciones utilizado por cada adaptador.

$adapters = Get-NetIPAddress -AddressFamily ipv4 | Where-Object InterfaceAlias -in (Get-NetAdapter | Select-Object -ExpandProperty Name) | Select-Object IPAddress,InterfaceAlias

$adapters | % {

    Test-Connection -Source $_.IPAddress -Destination 8.8.8.8 -ErrorAction SilentlyContinue | Out-Null

    if($?) {
        write-host $_.InterfaceAlias "(" $_.IPAddress ") can connect to the internet."
    }
    else {
        write-host $_.InterfaceAlias "(" $_.IPAddress ") failed to connect to the internet."
    }

}

Salida:

Local Area Connection ( 10.1.1.2 ) can connect to the internet
Ethernet 2 ( 10.1.1.3 ) failed to connect to the internet.
Wireless Network Connection ( 10.1.1.4 ) failed to connect to the internet.

0voto

Benny Puntos 396

Creo que la mejor manera sería comprobar que el adaptador de la ruta por defecto de uso.

Get-NetRoute -DestinationPrefix "0.0.0.0/0"

Esto le daría el ifIndex para el adaptador que debe estar conectado a internet. El mismo ifIndex puede ser utilizado para obtener el adaptador de...

Get-NetAdapter -InterfaceIndex <number from previous command>

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: