在 cmd.exe 上获取默认的 Windows 网络名称字符串

在 cmd.exe 上获取默认的 Windows 网络名称字符串

Windows 会自动识别连接的网络并将其命名为Wireless NetworkWired 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-NetConnectionProfilecmdlet,您可以使用以下命令仅提取网络名称:

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网卡。它将显示所有网络及其相关状态。

注意:我的丹麦电脑的设置名称可能翻译错误。

相关内容