如何通过netsh命令重启主机网卡?

文化   科技   2024-07-25 21:02   北京  


正文共:999 字 15 图,预估阅读时间:1 分钟

不知道各位遇到过没有,VMware Workstation的NAT网卡经常出现一种情况:在虚拟机里面访问外部网络还是正常的,但是从宿主机却访问不到虚拟机。

说实话,这个问题在我的办公电脑上面几乎是必现,每次电脑重启过之后80%以上概率会遇到这个问题(最近是100%)。

解决方案也比较简单,重启网卡就能解决。

但是,我的电脑是Windows 11的操作系统,要重启网卡操作时真的麻烦啊。首先是右击网卡图标,点击“网络和Internet设置”,进入到设置页面。

然后点击“高级网络设置”

找到网卡VMware Network Adapter VMnet8,先点击“禁用”

等网卡状态变为“已禁用”之后,再点击“启用”

大概是需要这4步,一般操作需要将近一分钟的时间。

还有一种方式,我们在网络之路1:初识网络中介绍过,也可以通过运行“ncpa.cpl”来打开“网络连接”页面。

通过这种方式来操作,能稍微快一些,但一般也要半分钟左右了。同样的,如果我们通过控制面板打开“控制面板\网络和 Internet\网络连接”,时间会稍微再长一点。

这个时候我就想到了命令行,能不能写个脚本,简单快捷的完成这一系列操作呢?

所以我前面研究了netsh interface命令Windows通过netsh interface命令配置接口网络,终于有所收获。

首先,我们需要以管理员身份运行命令提示符(CMD)。

在CMD命令行中,我们首先运行以下命令查看当前的网络适配器列表:

netsh interface show interface

在列表中找到名为“VMware Network Adapter VMnet8”的适配器,确认其显示的接口名称,即接口索引号。

然后,我们使用以下命令确认接口索引号是否正确。

netsh interface show interface "VMware Network Adapter VMnet8"

接下来,我们就可以运行以下命令来禁用该适配器:

netsh interface set interface <接口索引号> admin=disable

注意将“<接口索引号>”替换为命令行中获得的正确的适配器接口索引号。

netsh interface set interface "VMware Network Adapter VMnet8" admin=disable

此时接口状态变成了已禁用,然后再运行以下命令来启用该适配器:

netsh interface set interface <接口索引号> admin=enable

同样,需要将“<接口索引号>”替换为正确的适配器接口索引号。

netsh interface set interface "VMware Network Adapter VMnet8" admin=enable

测试命令可用之后,我们就可以编写bat脚本了。我们想要的效果是执行完命令之后有个提示,并调用命令展示状态,最后停留在结果页面,按键退出。脚本如下:

@echo offnetsh interface set interface "VMware Network Adapter VMnet8" admin=disableecho 接口 VMware Network Adapter VMnet8 已被禁用。netsh interface show interface "VMware Network Adapter VMnet8"timeout /t 1netsh interface set interface "VMware Network Adapter VMnet8" admin=enableecho 接口 VMware Network Adapter VMnet8 已被启用。netsh interface show interface "VMware Network Adapter VMnet8"pause

执行看一下效果。

中文显示为乱码,从网上找了两种方法,一种是在脚本开始增加一行“CHCP 65001”,要求CMD使用了65001代码页(Unicode UTF-8)来进行编码。

但是发现系统的输出却变成了英文。

还有一种方法是变换脚本的编码格式,在“文件”中选择“另存为”,将编码格式从“UTF-8”修改为“ANSI”

再次测试,成了!

现在,我终于可以在5秒之内完成网卡的重启了!

当然,我还找了一种使用PowerShell进行配置的方法。

首先,打开PowerShell窗口。运行以下命令获取适配器对象:

$adapter = Get-NetAdapter | Where-Object {$_.Name -eq "VMware Network Adapter VMnet8"}

这将获取名为“VMware Network Adapter VMnet8”的适配器对象。

然后运行以下命令来禁用该适配器:

Disable-NetAdapter -Name $adapter.Name

等待片刻,然后运行以下命令来启用该适配器:

Enable-NetAdapter -Name $adapter.Name

以上几种方法都可以禁用并重新启用VMware Network Adapter VMnet8适配器,实现对该适配器的重启操作。你更喜欢哪一种呢?

长按二维码
关注我们吧

Windows通过netsh interface命令配置接口网络
网络之路第一章:Windows系统中的网络
网络之路第二章:认识企业设备
网络之路第三章:认识设备命令行
网络之路18:简单网络环境搭建与测试
网络之路19:网络设备基本连接与调试
VMware ESXi 6.7可以成功识别机械硬盘了
快速部署VMware ESXi 8.0(图文版)
小测一下笔记本电脑的VMXNET3和E1000e网卡性能
CentOS 7.9遗忘了root密码怎么办?
为Linux设置GRUB密码
Linux修改或移除GRUB密码
MTR网络诊断工具
为什么8.8.8.8从全球访问都很快?
安装激活Office LTSC专业增强版2021
用太空办公桌spacedesk把废旧平板利用起来

铁军哥
高级网络规划设计师,中国电信高级技术规划工程师,天翼云认证高级解决方案架构师,H3C认证网络工程师。 继续加油,努力传播知识,影响更多人!
 最新文章