
Windows автоматически определяет подключенные сети и называет их как Wireless Network
, Wired Network 2
или windows.domain.tld
в случае систем, присоединенных к домену. Есть ли какая-либо команда для получения строки подключенной сети, которую обнаружила Windows?
ОБНОВЛЯТЬ
Попробовав ответ @Bob, я заметил, что в выводе указана строка для каждой сети, к которой подключено приложение:
> Get-NetConnectionProfle | Select-Object -ExpandProperty Name
Wired Connection
Wireless Connection 3
VPN Name
По умолчанию Windows использует только одну из подключенных сетей для всего трафика, например, только проводное соединение, даже если беспроводное тоже подключено, и только VPN, если подключено. Что мне сделать, чтобы получить только строку имени сети по умолчанию?
решение1
Чтобы найти интерфейс по умолчанию, вам нужно найти маршрут по умолчанию с наименьшей метрикой. Вы можете сделать это с помощью следующего кода 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
Обратите внимание, что интерфейс по умолчанию для IPv4 и IPv6 может быть разным. Теперь, поскольку у вас есть индекс интерфейса, вы можете использовать его Get-NetConnectionProfile
для получения имени сети:
(Get-NetConnectionProfile -InterfaceIndex $DefaultIPv4InterfaceIndex).Name
(Get-NetConnectionProfile -InterfaceIndex $DefaultIPv6InterfaceIndex).Name
решение2
Если вы умеете использовать PowerShell, то в Windows Server 2012 R2/Windows 8.1 он естьGet-NetConnectionProfile
Командлет, и вы можете извлечь только имя сети с помощью следующего:
Get-NetConnectionProfile | Select-Object -ExpandProperty Name
Вы можете запустить это в более ранних версиях Windows, установив PowerShell 4.0 (Windows Management Framework 4.0).
Вы можете запустить его из устаревшей командной строки, передав его в PowerShell с помощью powershell -c
.
Вы также можете получить доступ к разделам реестра напрямую, хотя я не уверен, как вы определите, какой из них является текущим:Как переименовать сеть в Windows 8?
решение3
Если вы пойдете туда, Controlpanel > Network & Internet > Network & Sharing center
то увидите active networks
.
Вы также можете перейти Network & Sharing center
и нажать Edit Settings
на сетевую карту. Она покажет все сети с относительным статусом.
Примечание: названия настроек могут быть неправильно переведены с моего датского ПК.