使用devcon禁用启用网卡

系统平台:win2003

情况描述: 机器上装有两块网卡,8136和8139,网卡A使用静态IP,连接内部办公网,网卡B使用DHCP,连接互联网。切换两个网络时,需要先禁用一个网卡,启用另一个网卡。来回点鼠标太麻烦,所以想到用命令行。

操作目的:便捷切换内外网

操作方法:

尝试过的方法

(1)netsh interface,该命令下有enable和disable,但对LAN端口不起作用。

(2)Power Shell,微软推出的增强命令行工具,类似bash,支持脚本,功能强大。个人认为肯定可以。但我毕竟是外行,学起来头疼。

(3)使用devcon。需要注意的是搞清楚硬件ID(hardware ID)和范例ID(Instance ID)的区别,同时使用必须的转义字符。

正确方法是:

Step1 运行devcon hwids pci\* > pci_device.txt

该命令将所有PCI设备的全部ID(范例ID、硬件ID、兼容ID等等)输出到一个文本文件中,这样可以直接粘贴那一长串范例ID,不用手打了。

Step2 编辑pci_device.txt 找到相关设备。下面是我机器上该部分的内容:

PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\3&61AAA01&0&50
    Name: Realtek RTL8139 Family PCI Fast Ethernet NIC #2
    Hardware ID‘s:(硬件ID)
        PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10
        PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC
        PCI\VEN_10EC&DEV_8139&CC_020000
        PCI\VEN_10EC&DEV_8139&CC_0200
    Compatible ID‘s:(兼容ID)
        PCI\VEN_10EC&DEV_8139&REV_10
        PCI\VEN_10EC&DEV_8139
        PCI\VEN_10EC&CC_020000
        PCI\VEN_10EC&CC_0200
        PCI\VEN_10EC
        PCI\CC_020000
        PCI\CC_0200

最上面最长的那一行『PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\3&61AAA01&0&50』就是唯一标识该网卡的 范例ID

Step3 禁用网卡,运行下列命令:

devcon /r disable "@PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\3&61AAA01&0&50"

或者简单点,干脆禁用所有带DEV_8139字符的设备:devcon disable *DEV_8139*

注意

所有范例ID前必须加@字符;将disable改为enable就是启用;由于设备范例 ID 包含 & 字符 (&),因此它们应包含在引号中;可以包含 /r 参数,该参数会在必要时重新启动系统以使设置生效。如果有多个设备,每个设备实例 ID 与其他设备实例 ID 之间用一个空格分隔。比如:

devcon /r disable "@USB\ROOT_HUB\4&2A40B465&0" "@USB\ROOT_HUB\4&7EFA360&0" "@USB\VID_045E&PID_0039\5&29F428A4&0&2"

详情参阅:http://technet.microsoft.com/zh-cn/library/ff544746

以下是我自己编写的一个批处理文本

__________________________________________________________________________

@echo off& mode con cols=80 lines=20& color 3f

echo ●●●●●●●●●●●●

echo ●  1:启用拨号网卡 禁用内网网卡,拨号

echo ●  2:断开ADSL网络

echo ●  3:启用内网网卡 禁用拨号,连内网

echo ●  4:15秒后关闭电脑

echo ●  5:退出

echo ●●输入数字后,回车 ●●

set /p answer=

if %answer%==1 goto 1

if %answer%==2 goto 2

if %answer%==3 goto 3

if %answer%==4 goto 4

if %answer%==5 goto 5

:1

echo 启用拨号网卡,并禁用局域网网卡,请稍等……

devcon disable = "@PCI\VEN_10EC&DEV_8136&SUBSYS_301A17AA&REV_01"

devcon enable = "@PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10"

echo 正在拨号……

Rasdial "宽带连接" 063100492203 776143

echo -----------------------------------

echo 设置完成,按任意键打开联网直报平台!

pause

start "" "http://zb.stats-sd.gov.cn/dr/queryLoginInfo.do"

goto end

:2

Rasdial "宽带连接" /disconnect

goto end

:3

echo 启用局域网网卡,并禁用拨号网卡,请稍等……

devcon enable = "@PCI\VEN_10EC&DEV_8136&SUBSYS_301A17AA&REV_01"

devcon disable = "@PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10"

echo 正在自动获取IP……

netsh interface ip set address name="板载网卡" dhcp

netsh interface ip set dns name="板载网卡" dhcp

echo --------------------------------

echo 设置完成!按任意键打开sina mail!

pause

start "" "http://mail.sina.com"

goto end

:4

shutdown -s -t 15

goto end

:5

goto end

:adsl

Rasdial "宽带连接" 063100492203 776143

echo 拨号成功,按任意键打开联网直报平台!

pause

start "" "http://zb.stats-sd.gov.cn/dr/queryLoginInfo.do"

goto end

时间: 2024-11-05 13:48:25

使用devcon禁用启用网卡的相关文章

Visual Studio 使用之禁用/启用模板警告

Visual Studio 使用之禁用/启用模板警告 现象 运行文本模板化工具,生成文本代码的时候,默认情况下会弹出以下的安全警告: 勾选“不要显示此消息”后,不再提示安全警告了.不过对于本人这样的“强迫症”患者,就会想要自己控制禁用/启用该弹窗.如何做?很简单,打开Visual Studio ,菜单栏"工具"-->"选项"-->找到"文本模板化"节点:

Loadrunner11之禁用/启用Action

Loadrunner11之禁用/启用Action 大家在用Loadrunner11录制脚本的时候,会产生多个action,比如login, search, logout.在调试脚本的时候,我不想从头开始运行脚本里的所有action,只想运行单独某几个action,这样大家可能就会想到禁用不跑的action就可以了吧.的确这样的思路是没有问题的,但是lr在vugen里没有直接提供禁用或者启用action的功能,但是我们可以通过其它途径来实现这个功能,具体操作步骤如下: 录制的脚本结构如下: 这时候

怎样使用组策略禁用/启用远程连接

首先来完全了解下远程协助吧!远程控制是在网络上由一台电脑(主控端Remote/客户端)远距离去控制另一台电脑(被控端Host/服务器端)的技术.电脑中的远程控制技术,始于DOS时代.远程控制一般支持下面的这些网络方式:LAN.WAN.拨号方式.互联网方式.此外,有的远程控制软件还支持通过串口.并口.红外端口来对远程机进行控制(不过,这里说的远程电脑,只能是有限距离范围内的电脑了). 远程协助在默认情况下我们没有启用它,主要是考虑到安全性的问题,其实运用Windows xp系统本身的禁止/启用远程

centos虚拟机启用网卡

CentOS虚拟机安装成功后,默认开机未启用网关,通过修改配置文件,启用网卡 编辑系统配置文件,虚拟机完成后,系统安装了一个默认的网卡,即eth0,其配置文件的路径为/etc/sysconfig/network-scripts/ifcfg-eth0,在系统终端中输入命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0,启动vi编辑器编辑此文件   编辑默认网卡配置文件,将ONBOOT由no改为yes,编辑完成后,按ESC回至命令模板,输入":wq&quo

shell 获取网关 以及修改ip 启用网卡

shell 获取网关 以及修改ip 启用网卡 #!/bin/bash #autho freefei #script is a init computer eth #data 2014 10 09 192.168.1.1 netstats=$(netstat -r|grep default|cut -f 10 -d ' '); echo $netstats; #change other ifcfg eth1Path=/etc/sysconfig/network-scripts/ifcfg-eth1

win7禁用启用本地连接bat及vbs

平台:Windows 7 .8.1 目的:用bat启用禁用网卡 操作: cls @ECHO OFFtitle 启用或禁用本地连接 CLS color 0a GOTO MENU:MENU ECHO. ECHO. ==============启用禁用本地连接============== ECHO. ECHO. 1 禁用本地连接a ECHO. 2 启用本地连接b ECHO. 3 退 出 ECHO. ========================================== ECHO. ECH

linux配置禁用启用IPv6

IPv6被认为是IPv4的替代产品,它用来解决现有IPv4地址空间即将耗尽的问题.但目前,开启IPv6可能会导致一些问题.因此有时我们需要关闭IPv6.下面是IPv6的关闭方法应该适用于所有主流的Linux发行版包括Ubuntu.Debian.CentOS. IPv6在CentOS6.5系统中默认是启用状态,通过以下方式可以确认IPv6的状态 1.1.查看系统IPv6的启用状态 以下命令返回值为0表示IPv6启用,1表示禁用 cat /proc/sys/net/ipv6/conf/all/dis

win7如何通过netsh命令禁用启用本地连接

在测试的过程中,遇到一个问题,需要通过禁用,启用网络连接.通过百度,做了如下尝试,完成. 1) 先检查网络接口名称 C:\Windows\System32>netsh interface show interface管理员状态     状态           类型             接口名称-------------------------------------------------------------------------已启用            已连接         

SqlServer禁用启用触发器、外键约束

--禁用指定名称触发器 ALTER TABLE tbname DISABLE TRIGGER trigname --恢复指定名称触发器 ALTER TABLE tbname ENABLE TRIGGER trigname --禁用某个表上的所有触发器 ALTER TABLE tbname DISABLE TRIGGER all --启用某个表上的所有触发器 ALTER TABLE tbname ENABLE TRIGGER all --禁用所有表上的所有触发器exec sp_msforeacht