中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-29 08:42
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [分享]禁用&启用USB设备原来如此简单(可按标准分类) 查看 6,842 回复 35
楼 主 [分享]禁用&启用USB设备原来如此简单(可按标准分类) 发表于 2008-01-14 23:10 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
之前大家都用devcon find获取硬件ID(Hardware ID)通过for+find筛选来禁用或启用设备,但其名称不固定也没规律所以任何代码都不具有相对的通用性,我也一直以来因USB设备标准所困惑,本着不达目的誓不罢休的精神,开始寻求USB设备在Windows中的规律及USB设备标准,打开注册表编辑器开始从硬件相关的键值入手以寻找它们的相似之处及规律,最后定位到HKLM\SYSTEM\CurrentControlSet\Enum\USB,一一对比发现USB\Class_XX&SubClass_XX其有一定的规律,于是请出google高手相助,关键词CompatibleIDs在微软网站看到一点相关标准(微软标准并不是全部的标准),呵呵看来有希望了^_^,继续关键词USB Class,哈哈OK了!!www.usb.org 够标准了吧!好了闲话不多,开始分享我的劳动成果;-)

各设备分类标准
00 Use class information in the Interface Descriptors
01 Audio
02 Communications and CDC Control
03 HID (Human Interface Device)
05 Physical
06 Image
07 Printer
08 Mass Storage
09 Hub
0A CDC-Data
0B Smart Card
0D Content Security
0E Video
0F Personal Healthcare
DC Diagnostic Device
E0 Wireless Controller
EF Miscellaneous
FE Application Specific
FF Vendor Specific

英文不好以上不作翻译了

禁用某设备方法devcon.exe disable USB\Class_XX
启用某设备方法devcon.exe enable USB\Class_XX
(其中XX就是上面绿色部分序号)

例:
devcon.exe disable USB\Class_08
禁用U盘,即删除U盘,不管你有N个U盘统统一起删除
devcon.exe disable USB\Class_06
禁用数码相机,包括数码相机附带的可移动磁盘
devcon.exe disable USB\Class_03
禁用USB鼠标&键盘
devcon.exe disable USB\Class_ff
禁用摄像头,看你还臭美;-)
禁用&启用USB设备就如此简单

相关工具 DevCon.exe 微软命令行实用工具可替代设备管理器
相关连接:
http://www.microsoft.com/whdc/device/input/HID_HWID.mspx
http://www.usb.org/developers/defined_class/
http://www.cn-dos.net/forum/viewthread.php?tid=35139&fpage=1

最后也希望大家一起收集其他 USB\Class_XX 序号(跟贴)
查询已知或曾安装过的设备USB\Class_XX 序号批处理代码见下


@echo off
for /f "delims=*" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Enum\USB"^|find /i "Vid_"' do (
for /f "skip=4 delims=" %%b in ('reg query "%%a"' do (
for /f "skip=4 tokens=3" %%i in ('reg query "%%b" /v CompatibleIDs' do (
for /f "skip=4 tokens=1,2,*" %%a in ('reg query "%%b" /v DeviceDesc' do (
for /f "delims=&" %%j in ("%%i" do echo "%%j" 设备名称:%%c
))))
echo.&echo 若要查询USB\Class_XX以下分类,请将第5个for的"delims=&"改成"delims=*"
pause


借助DevCon纯脚本备份驱动,兼容驱动精灵(2008-01-17)

[ Last edited by fastslz on 2009-9-13 at 05:19 ]
本帖最近评分记录 (共 4 条) 点击查看详情
评分人分数时间
zh159 +10 2008-01-15 02:05
huahua0919 +4 2008-01-15 09:54
zts59 +4 2008-01-16 21:16
everest79 +15 2008-03-02 11:43
第一高手 第二高手

2 发表于 2008-01-15 02:05 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
devcon.exe disable USB\Class_03
禁用USB鼠标&键盘


这个在某些地方好用啊^_^
3 发表于 2008-01-16 11:34 ·  中国 广东 肇庆 四会市 电信
中级用户
★★
积分 384
发帖 189
注册 2005-10-19 13:12
20年会员
UID 43709
性别 男
状态 离线
还是fastslz厉害,这资料我也找好久了,可惜都找不全..
4 发表于 2008-01-16 11:51 ·  中国 甘肃 兰州 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
本本上把 一些设备认为是 U 盘
5 发表于 2008-01-16 12:58 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
Originally posted by vkill at 2008-1-16 11:51:
本本上把 一些设备认为是 U 盘

估计某些本本把设备接的主板USB扩展接口上吧
那你再看看SubClass_XX规律,我这里只有USB鼠标也测试不出SubClass_XX,如果USB鼠标键盘都是USB\Class_03那SubClass_XX序号可能不一样的,有的朋友看一下,1楼代码"delims=&"改成"delims="就可以看到了

哎~微软reg query的BUG真够恶心的
第一高手 第二高手

6 发表于 2008-01-16 13:38 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
学习代码,更学习精神。
7 发表于 2008-01-16 14:11 ·  中国 广东 东莞 电信
中级用户
★★
积分 387
发帖 104
注册 2004-11-19 00:00
21年会员
UID 33813
性别 男
状态 离线
哇,不错,很全了哇,谢谢
8 发表于 2008-01-16 16:17 ·  中国 湖北 武汉 电信
中级用户
★★
积分 452
发帖 202
注册 2006-12-21 13:46
19年会员
UID 74161
性别 女
状态 离线
在华硕主版上没用, VIMICRO USB PC Camera (ZC0301PLH)

禁用成功, 但是还是能用摄像头
9 发表于 2008-01-16 17:49 ·  中国 湖南 长沙 电信
初级用户
★★
积分 187
发帖 87
注册 2007-10-23 16:04
18年会员
UID 100558
性别 男
状态 离线
"devcon"这个命令还有如此强大的功能呀?
呵呵,多谢“fastslz”提供!
如此好帖,不得不顶!
10 好贴要顶 发表于 2008-01-16 22:56 ·  中国 广东 深圳 南山区 电信
中级用户
★★
部落守望者
积分 351
发帖 140
注册 2006-06-19 17:11
20年会员
UID 57261
性别 男
状态 离线
想系统地学学USB方面的东西,尤其是操作系统对USB设备的管理,
一切从底层开始
11 发表于 2008-01-17 14:04 ·  中国 黑龙江 哈尔滨 联通
新手上路
积分 12
发帖 6
注册 2006-10-23 21:14
19年会员
UID 67907
性别 男
状态 离线
试试吧,顶了!
12 发表于 2008-01-24 20:59 ·  中国 广东 东莞 电信
中级用户
★★
积分 387
发帖 104
注册 2004-11-19 00:00
21年会员
UID 33813
性别 男
状态 离线
请问楼主,DEVCON是修改什么来达到禁用设备的?

为什么用DEVCON禁用设备后:devcon.exe disable USB\Class_08

重启系统,又可以用了,晕


如何不用DEVCON来禁用设备呢? 比如修改注册表之类的.
13 发表于 2008-01-24 22:28 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
除了DEVCON禁用设备,还有wmic,注册表更复杂(还不一定成功)
当然你可以从注册表中彻底禁用USB设备
关键字 “彻底禁用USB设备” google
第一高手 第二高手

14 发表于 2008-01-25 01:17 ·  中国 香港 电讯盈科有限公司
新手上路
积分 6
发帖 5
注册 2006-10-22 05:16
19年会员
UID 67646
性别 男
状态 离线
唔錯唔錯.....xd
15 发表于 2008-01-25 23:39 ·  中国 广东 珠海 联通
新手上路
积分 10
发帖 5
注册 2008-01-13 10:00
18年会员
UID 108462
性别 男
状态 离线
谢谢,分享.
学习了
论坛跳转: