Win系统 - Devcon 启用 / 禁用设备、驱动程序

Windows 专栏收录该内容
166 篇文章 4 订阅

背景:以启用 / 禁用网卡举例。

系统平台:win2003。

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

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

工具下载:https://download.csdn.net/download/dream_weave/11230732

操作方法

1、尝试过的方法

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

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

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

2、正确方法

   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

 

  • 1
    点赞
  • 0
    评论
  • 5
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

概要:   DevCon 实用工具是一种命令行实用工具,可以替代设备管理器。使用 DevCon,您可以启用禁用、重新启动、更新、删除和查询单个设备或一组设备DevCon 提供与开发人员有关但无法在设备管理器中看到的信息。   您可以将 DevCon 用于 Windows 2000 、Windows XP和Windows vista。不能将 Devcon 用于 Microsoft Windows 95、Windows 98、或 Windows Millennium Edition。   下载:http://download.microsoft.com/download/1/1/f/11f7dd10-272d-4cd2-896f-9ce67f3e0240/devcon.exe 用法及参数说明:   devcon.exe [-r] [-m:\\] [...]   -r 如果指定它,在命令完成后若需要则重新启动计算机。    是目标计算机的名称。    是将要执行的命令(如下所示)。   ... 是命令需要的一个或多个参数。   要获取关于某一特定命令的帮助,请键入:devcon.exe help   classfilter 允许修改类别筛选程序。   classes 列出所有设备安装类别。   disable 禁用与指定的硬件或实例 ID 匹配的设备。   driverfiles 列出针对设备安装的驱动程序文件。   drivernodes 列出设备的所有驱动程序节点。   enable 启用与指定的硬件或 实例 ID 匹配的设备。   find 查找与指定的硬件或 实例 ID 匹配的设备。   findall 查找设备,包括那些未显示的设备。   help 显示此信息。   hwids 列出设备的硬件 ID。   install 手动安装设备。   listclass 列出某一安装类别的所有设备。   reboot 重新启动本地计算机。   remove 删除与特定的硬件或 实例 ID 匹配的设备。   rescan 扫描以发现新的硬件。   resources 列出设备的硬件资源。   restart 重新启动与特定的硬件或 实例 ID 匹配的设备。   stack 列出预期的设备驱动程序堆栈。   status 列出设备的运行状态。   update 手动更新设备。   UpdateNI 手动更新设备,无用户提示   SetHwID 添加、删除和更改根枚举设备的硬件 ID 的顺序。 示例:   devcon -m:\\test find pci\* 列出计算机 test 上的所有已知 PCI 设备。(通过使用 -m,您可以指定一个目标计算机。您必须使用“进程间通信”(IPC) 访问此计算机。)   devcon -r install Windows directory\Inf\Netloop.inf *MSLOOP 安装一个新的 Microsoft 环回适配器实例。这将创建一个新的根枚举设备节点,使用此节点您可以安装“虚拟设备”,如环回适配器。如果需要重新启动计算机,此命令还将以安静模式重启计算机。   devcon classes 列出所有已知的安装类别。输出结果包含短的未本地化的名称(例如,“USB”)和描述性名称(例如,“通用串行总线控制器”)。 禁用启用网卡的步骤:   1.用devcon hwids PCI*命令得到所有以PCI开头的设备。这时会列出很多设备,那么哪个才是网卡对应的呢?   2.打开设备管理器,展开网络适配器,找到网卡的名称,然后记住到刚才得到的列表中找对应的Name,然后你会在下面看到好几个ID,随便挑一个就行   3.用devcon disable "PCI\VEN_11AB&DEV_4380&SUBSYS_301B17AA&REV_10"禁用网卡(启用的话讲disable换成enable就行了)   4.其实用PCI开头得到的几组设备中一般第一个就是网卡设备 sysdzw 16:01 2010-11-16
©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值