系统平台: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

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

  1. linux下禁用网卡的启用网卡的一些方法

    第一种方法: 这种方法主要是在不重启的情况下会一直生效,适用于服务器. #禁用网卡eth0 sudo ifconfig eth0 down #启用网卡eth0 sudo ifconfig eth0 u ...

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

    shell 获取网关 以及修改ip 启用网卡 #!/bin/bash #autho freefei #script is a init computer eth #data 2014 10 09 19 ...

  3. 如何修改SpriteBuilder中的按钮禁用启用状态

    按钮的禁用状态和按钮的User Interaction Enabled属性并不相符. 后者设定的是按钮是否参与用户交互. 你不能直接在SpriteBuilder中编译按钮的禁用启用属性.除非你想给按钮 ...

  4. 【网摘】EasyUI常用控件禁用启用方法

    1.validatebox可以用的用法:前两种适用于单个的validatebox; 第三种应用于整个form里面的输入框; <1>.$("#id").attr(&quo ...

  5. CentOS7 开启网卡,设置开机启用网卡

    默认centos和redhat7都是不启用有线网卡的,要么手动开启,要么安装时直接启用(安装时启用网卡和指定IP最省事)! 一 .临时启用网卡,关机或重启后,网络不会自动开启1.使用命令 ip add ...

  6. CentOS 7 救援模式启用网卡及重新获取IP地址

    重新自动获取IP地址命令: dhclient 启用网卡命令 ifconfig ens33 up https://blog.csdn.net/hongmin118/article/details/782 ...

  7. Loadrunner11之禁用/启用Action

    Loadrunner11之禁用/启用Action   大家在用Loadrunner11录制脚本的时候,会产生多个action,比如login, search, logout.在调试脚本的时候,我不想从 ...

  8. centos虚拟机启用网卡

    CentOS虚拟机安装成功后,默认开机未启用网关,通过修改配置文件,启用网卡 编辑系统配置文件,虚拟机完成后,系统安装了一个默认的网卡,即eth0,其配置文件的路径为/etc/sysconfig/ne ...

  9. ASP.NET Boilerplate 学习 AspNet Core2 浏览器缓存使用 c#基础,单线程,跨线程访问和线程带参数 wpf 禁用启用webbroswer右键菜单 EF Core 2.0使用MsSql/MySql实现DB First和Code First ASP.NET Core部署到Windows IIS QRCode.js:使用 JavaScript 生成

    ASP.NET Boilerplate 学习   1.在http://www.aspnetboilerplate.com/Templates 网站下载ABP模版 2.解压后打开解决方案,解决方案目录: ...

随机推荐

  1. html readonly和disabled的区别

    今天我创建了一个html表单,其中一个字段是sequence number, 这个字段是用ajax异步从后台获取自动生成的,我不希望用户修改这个值,于是我使用了如下html代码来处理: <for ...

  2. 好友与组--ESFramework 4.0 进阶(11)

    大部分分布式通信系统中,都会涉及到客户端之间相互通信.以及需要将客户端进行分组的功能,或者是类似这方面的需求.ESFramework对这一常见的任务内置了强大的支持,包括从客户端到服务端.一直到Pla ...

  3. C++著名程序库的比较和学习经验(STL.Boost.GUI.XML.网络等等)

    1.C++各大有名库的介绍--C++标准库 2.C++各大有名库的介绍--准标准库Boost 3.C++各大有名库的介绍--GUI 4.C++各大有名库的介绍--网络通信 5.C++各大有名库的介绍- ...

  4. python-连接数据库

    from sqlalchemy import create_engine,text,Column,Integer,String,Sequencefrom sqlalchemy.ext.declarat ...

  5. 学习multiprocessing

    1. multiprocessing.Pool from multiprocessing.pool import Pool def gen_row(): ...return rows def main ...

  6. 自定义控件之--组合控件(titlebar)

    自定义控件相关知识从郭霖等大神身上学习,这里只不过加上自己的理解和实践,绝非抄袭.   组合控件是自定义控件中最简单的方式,但是是入门自定义控件和进阶的过程: 那么常见的组合控件有那些? 比如titl ...

  7. 《Windows驱动开发技术详解》之派遣函数

    驱动程序的主要功能是负责处理I/O请求,其中大部分I/O请求是在派遣函数中处理的.用户模式下所有对驱动程序的I/O请求,全部由操作系统转化为一个叫做IRP的数据结构,不同的IRP数据会被“派遣”到不同 ...

  8. lldpd-0.7.7代码解读(send_pdu部分)

    此文档是经过逆序推到出的,可能有错误之处,敬请指教,谢谢. 1)interfaces_update 更新一些接口信息 2)levent_iface_subscribe 该接口通过socket通信(非阻 ...

  9. MVC中用 BundleCollection 压缩CSS时图片路径问题

    MVC中有个专门提供JS和CSS压缩的类,BundleCollection,其实这个类也可以在asp.net中用, 关于BundleCollection类的详细推荐个地址:http://www.cnb ...

  10. HDU1051:Wooden Sticks

    Problem Description There is a pile of n wooden sticks. The length and weight of each stick are know ...