Ottieni la stringa del nome di rete di Windows predefinita su cmd.exe


1

Windows identifica automaticamente le reti connesse e le nomina come Wireless Network, Wired Network 2o windows.domain.tldnel caso di sistemi aggiunti al dominio. Esiste un comando per ottenere la stringa della rete connessa su cui Windows ha rilevato che è attiva?

AGGIORNARE

Dopo aver provato la risposta di @ Bob, ho notato che l'output elenca una linea per ogni rete a cui è connessa:

> Get-NetConnectionProfle | Select-Object -ExpandProperty Name
Wired Connection
Wireless Connection 3
VPN Name

Per impostazione predefinita, Windows utilizza solo una delle reti connesse per tutto il traffico, ad esempio solo la connessione cablata anche quando è connessa la rete wireless e solo la VPN se connessa. Cosa devo fare per ottenere solo la stringa del nome della rete predefinita?


Sembra esserci un po 'di confusione su ciò che effettivamente ti aspetti come output (quindi ho eliminato la mia risposta). Ora è rimosso, quindi controlla se soddisfa le tue esigenze. Emette il nome della connessione di rete attualmente "Connected".
DavidPostill

Risposte:


2

Per trovare l'interfaccia predefinita, devi trovare il percorso predefinito con la metrica più bassa. Puoi farlo con il seguente codice PowerShell:

$DefaultIPv4InterfaceIndex=
Get-NetRoute -DestinationPrefix 0.0.0.0/0|
Sort-Object {$_.RouteMetric+(Get-NetIPInterface -AssociatedRoute $_).InterfaceMetric}|
Select-Object -First 1 -ExpandProperty InterfaceIndex

$DefaultIPv6InterfaceIndex=
Get-NetRoute -DestinationPrefix ::/0|
Sort-Object {$_.RouteMetric+(Get-NetIPInterface -AssociatedRoute $_).InterfaceMetric}|
Select-Object -First 1 -ExpandProperty InterfaceIndex

Si noti che l'interfaccia predefinita per IPv4 e per IPv6 può essere diversa. Ora, poiché hai un indice di interfaccia, puoi usare Get-NetConnectionProfileper ottenere il nome della rete:

(Get-NetConnectionProfile -InterfaceIndex $DefaultIPv4InterfaceIndex).Name
(Get-NetConnectionProfile -InterfaceIndex $DefaultIPv6InterfaceIndex).Name

Sconfiggimi! Bella risposta. Potrebbe renderlo una fodera con un filtro, ma non è troppo importante.
Bob,

L'ho usato con successo nel mio primo script PowerShell di sempre. Grazie mille per questo frammento!
Oxwivi,

1

Se è possibile utilizzare PowerShell, a partire da Windows Server 2012 R2 / Windows 8.1 ha un Get-NetConnectionProfilecmdlet ed è possibile estrarre solo il nome della rete con il seguente:

Get-NetConnectionProfile | Select-Object -ExpandProperty Name

È possibile eseguirlo su versioni precedenti di Windows installando PowerShell 4.0 ( Windows Management Framework 4.0 ).

È possibile eseguirlo dal prompt dei comandi legacy passandolo in PowerShell con powershell -c.

Potresti anche accedere direttamente alle chiavi del Registro di sistema, anche se non sono sicuro di come potresti capire quale sia quella corrente: Come posso rinominare una rete in Windows 8?


Ho solo bisogno di ottenere il nome per lo scripting, vale a dire per capire se il sistema è connesso alla mia LAN e, se non connesso alla LAN, connettersi alla VPN che lo fa. Penso che questo comando o quello che hai modificato siano sufficienti (purché funzionino). Accetterò la risposta quando riuscirò a provarlo (attualmente non su un sistema Windows).
Oxwivi,

In una nota correlata, ho anche chiesto come è possibile connettersi a una VPN L2TP / IPsec cmd.exeper lo stesso script. Se sai qualcosa, ti preghiamo di soppesare.
Oxwivi,

Il tuo comando è un po 'problematico: elenca una linea per ogni rete a cui è connessa, ovvero una linea per wireless, un'altra per rete cablata e una terza per VPN.
Oxwivi,

Sto cambiando la domanda con la stringa di rete predefinita a cui è collegato il sistema. Anche se sia cablato che wireless è connesso, per impostazione predefinita Windows ne utilizza solo uno per tutte le connessioni e allo stesso modo utilizza solo la VPN quando è connesso.
Oxwivi,

-1

Se vai a Controlpanel > Network & Internet > Network & Sharing centerquesto mostrerà active networks.

Puoi anche andare da Network & Sharing centere fare clic Edit Settingsper la scheda di rete. Mostrerà tutte le reti con lo stato relativo.

Nota: i nomi delle impostazioni possono essere tradotti erroneamente dal mio PC danese.


Ho specificamente chiesto cmd.exe, scusa.
Oxwivi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.