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
cmdlet,您可以使用以下命令仅提取网络名称:
Get-NetConnectionProfile | Select-Object -ExpandProperty Name
您可以在早期版本的 Windows 上通过安装 PowerShell 4.0 来运行此程序(Windows 管理框架 4.0)。
您可以通过将其传递到 PowerShell 中来从旧版命令提示符运行它powershell -c
。
您也可以直接访问注册表项,但我不确定如何确定哪一个是当前的:如何在 Windows 8 中重命名网络?
答案3
如果你去Controlpanel > Network & Internet > Network & Sharing center
它就会显示active networks
。
您也可以从中转到Network & Sharing center
并单击Edit Settings
网卡。它将显示所有网络及其相关状态。
注意:我的丹麦电脑的设置名称可能翻译错误。