Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 通过命令行重命名网络接口名称_Windows_Networking_Cmd_Ethernet_Netsh - Fatal编程技术网

Windows 通过命令行重命名网络接口名称

Windows 通过命令行重命名网络接口名称,windows,networking,cmd,ethernet,netsh,Windows,Networking,Cmd,Ethernet,Netsh,我想通过dos将网络接口名称重命名为默认名称,例如“Ethernet” 我知道netsh接口set interface name=“Local Area Connection”newname=“Ethernet”就是这样做的 我正在运行一个脚本,它不会知道interace的名称,对吗?因此,在设置接口的IP地址之前,我需要将其重命名为默认值 如何在不知道接口名称的情况下执行此操作 是否有办法以某种方式获取接口名称,然后对其进行更改?您可以使用Powershell进行大量操作,这取决于您的服务器安

我想通过dos将网络接口名称重命名为默认名称,例如“Ethernet”

我知道
netsh接口set interface name=“Local Area Connection”newname=“Ethernet”
就是这样做的

我正在运行一个脚本,它不会知道interace的名称,对吗?因此,在设置接口的IP地址之前,我需要将其重命名为默认值

如何在不知道接口名称的情况下执行此操作


是否有办法以某种方式获取接口名称,然后对其进行更改?

您可以使用Powershell进行大量操作,这取决于您的服务器安装的新程度。谷歌“Get-WmiObject-Class Win32\u NetworkAdapterConfiguration”查看更多信息。

netsh(微软试图让我们放弃的工具) 要获取WLAN接口名称:
netsh WLAN show interfaces

帮助状态:显示接口-显示系统上无线LAN接口的列表。
要获取LAN接口名称:
netsh LAN show interfaces

帮助状态:显示接口-显示系统上当前有线接口的列表。
要获取所有接口的名称:
netsh interface show interface

帮助状态:显示界面-显示界面

LAN命令确实需要有线自动配置服务,该服务通常不会启动

此批处理脚本将启动服务,获取(最后一个)LAN接口名称,将其更改为新名称,再次停止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
限制:

  • 它假定只有一个有线接口
  • 它将停止有线自动配置服务,无论它是否在开始运行
对于Wifi接口,将上述脚本“lan”更改为“wlan”,并删除sc.exe服务启动/停止


动力壳 要更好地控制改名为PowerShell的接口,将更容易选择

这可能在大多数情况下都有效:
Get NetAdapter |其中对象{$\硬件接口-eq$True-和$\媒体类型-eq“802.3”}重命名NetAdapter-NewName“Ethernet”

硬件接口
将消除虚拟接口,例如VMWare
MediaType
802.3
将仅显示“有线”接口,而不显示Wifi、宽带或其他接口

在脚本文件中,使用上述版本的命令,简写版本为:
获取NetAdapter |?硬件接口|?MediaType-eq“802.3”|将NetAdapter重命名为“以太网”

有更多选项可以选择所需的界面。检查可以选择它的所有参数:
(获取NetAdapter)[0]|格式列表-属性*-强制

e、 g.
列出所有由Realtek制造的产品(Realtek供应商10ec,英特尔:8086):
获取NetAdapter |?类似组件ID的“PCI\venu 10EC*”

非虚拟:
获取NetAdapter |?虚拟-均衡器$false

连接器存在:
获取NetAdapter |?ConnectorPresent

然后是WMI对象
获取WmiObject-类Win32\u网络适配器配置


登记处 如果您更改了网络适配器卡,而新卡使用的名称为: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会正确地说:
试图创建一个对象,但对象名称已经存在。

但是转到
控制面板\网络和Internet \网络连接
并尝试在那里重命名接口也不会有帮助

对于这种情况,唯一的选择似乎是在这些注册表路径中查找相应的键:

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\
然后删除旧接口的密钥(不是上面写的整个路径!),然后重新启动。

通过cmd batch、PS或控制面板重命名现在应该可以了。

很抱歉回滚编辑,我在引号中说了“DOS”,因为它是问题下的一个标记。但不同意“命令行”,因为PowerShell应该是(也许)新的命令行,但无论如何也是一个命令行。netsh是一个工具,不是命令行,但肯定不是DOS,我同意即使在引号中也不应该使用该引用。所以现在我记得netsh不再唠叨过时了。是什么给了MS?:)