我想通过 dos 将网络接口(interface)名称重命名为默认名称,例如“以太网”。
我知道 netsh interface set interface name=”Local Area Connection” newname=”Ethernet”
是这样做的方法。
我正在运行一个脚本,它不知道接口(interface)的名称,对吗?因此,在为接口(interface)设置 IP 地址之前,我需要将其重命名为默认值。
如何在不知道接口(interface)名称的情况下执行此操作?
有没有办法以某种方式获取接口(interface)的名称然后更改它?
netsh(MS 试图让我们放弃并放弃的工具)
获取 WLAN 接口(interface)名称:netsh wlan show interfaces
帮助状态:show interfaces - 显示系统上的无线 LAN 接口(interface)列表。
要获取 LAN 接口(interface)名称:netsh lan show interfaces
帮助状态:show interfaces - 显示系统上当前有线接口(interface)的列表。
获取所有接口(interface)的名称:netsh interface show interface
帮助状态:show interfaces - 显示接口(interface)。
LAN命令确实需要有线AutoConfig服务,一般不会启动。
此批处理脚本将启动服务,获取(最后的)LAN 接口(interface)名称,将其更改为新名称,再次停止 Wired AutoConfig 服务。
sc.exe start dot3svc
for /f "tokens=1* delims=: " %%a in ('netsh lan show interfaces') do if %%a == Name set activeAdapter=%%b
echo %activeAdapter%
netsh interface set interface name="%activeAdapter%" newname="Ethernet"
sc.exe stop dot3svc
限制:
- 假设只有一个有线接口(interface)
- 无论 Wired AutoConfig 服务是否在启动时,它都会停止它
对于 Wifi 接口(interface),将上面的脚本 'lan' 更改为 'wlan' 并删除两个 sc.exe 服务启动/停止
PowerShell
为了更好地控制重命名为 PowerShell 的界面将是一个更容易的选择。
这在大多数情况下可能会起作用:
获取 NetAdapter | Where-Object { $_.HardwareInterface -eq $True -and $_.MediaType -eq "802.3"} |重命名-NetAdapter -NewName“以太网”
HardwareInterface
将消除虚拟接口(interface),例如虚拟机
MediaType
802.3
将仅显示“有线”接口(interface),不显示 Wifi、宽带或其他接口(interface)。
在脚本文件中,使用上述版本的命令,简写版本为:
获取 NetAdapter | ?硬件接口(interface) | ?媒体类型-eq "802.3"|重命名 NetAdapter“以太网”
有更多选项可以选择所需的界面。检查可以选择它的所有参数:
(获取 NetAdapter)[0] | Format-List -Property * -Force
例如
列出所有由 Realtek 制造的(Realtek 供应商 10ec,Intel:8086):
获取 NetAdapter | ? ComponentID -like "PCI\VEN_10EC*"
不是虚拟的:
获取 NetAdapter | ?虚拟-eq $false
存在连接器:
获取 NetAdapter | ?连接器存在
然后是WMI对象
Get-WmiObject -Class Win32_NetworkAdapterConfiguration
注册表
如果您更改了网络适配卡并且新的使用名称:Ethernet 2 或类似名称并且您想将其重命名回“Ethernet”,
会有一个错误说:
"You were not connected because a duplicate name exists on the network. If joining a domain, go to System in Control Panel to change the computer name and try again. If joining a workgroup, choose another workgroup name."
这当然是关于重命名计算机的错误消息。
PowerShell 会正确地说:试图创建一个对象并且对象名称已经存在。
但是转到 Control Panel\Network and Internet\Network Connections
并尝试重命名那里的界面也无济于事。
似乎这种情况的唯一选择是在这些注册表路径中找到相应的键:
HKEY_LOCAL_MACHINE\SYSTEM\Setup\Upgrade\NetworkDriverBackup\Control\Network\{4d36e972-e325-11ce-bfc1-08002be10318}\
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\
HKEY_LOCAL_MACHINE\SYSTEM\Setup\Upgrade\NetworkDriverBackup\Control\NetworkSetup2\Interfaces\
并删除旧接口(interface)的 key (不是上面写的整个路径!),然后重新启动。
通过 cmd 批处理、PS 或在控制面板中重命名现在应该可以工作了。