感谢IT之家网友洛克人EXE后援团光卡的投稿
在大多数情况下,很多驱动程序都会提供一个卸载程序来让你卸载驱动。但是,如果你装的驱动不提供卸载程序的话,想卸载整个驱动包就显得非常棘手了。
昨天我拿到一台Lumia 930,连接电脑发现无法像往常一样在电脑上出现一个MTP设备,也不能测试离线推送更新包。打开设备管理器发现报错19。
在网上找到的针对此故障的方法(修改注册表),测试发现毫无效果。但是偶然发现,手动更新驱动成“MTB USB设备”的话就可以正常使用了。在设备管理器里删除硬件之后重新连接,故障重现,这就说明系统被装入了不兼容的驱动。
既然知道问题出在不兼容的MTP USB驱动上,那么只需要把MTP USB驱动卸载即可。但是MTP USB设备右键卸载驱动程序软件并不会出现“删除此设备的驱动程序软件”,这么一来就很麻烦了。
好在Win7和以上版本中,额外安装的驱动程序可以使用“部署映像服务和管理工具”(Deployment Image Servicing and Management,DISM)来添加、删除、查看。但是当你正在运行这个系统的时候,你无法使用DISM来添加删除驱动。
因此,我们就需要使用PE来完成这个操作了。
如果你有一个自己的PE U盘,你可以使用你的PE U盘,但是你的PE U盘必须满足这些条件:
-至少是Win8内核,推荐Win10内核
-使用的PE位数和你自己要处理的Windows系统的位数一致。比如说你用的是Windows10 64位,那么你也应该用64位的PE
如果没有自己的PE的话,也可以使用系统自带的WinRE环境。
以Win10为例,在设置里,点更新和恢复,恢复里选择“立即重启”。
然后选择“疑难解答”、“高级选项”、“命令提示符”。
等重启之后,选择你的用户名,然后输入密码(如果没有就保持空白),确定,即可出现命令提示符。
进入PE之后,你可以看到,一般情况下系统都是装到C盘上的。
请检查你PE自带的dism版本是否大于等于你装的Windows版本,比如说如果你用的是Win10 Build 14393.726,那么你就应该用至少10.0.14393的dism。如果低于此版本,请输入此命令切换到你系统的盘符调用你原先系统上的dism:
cd /d C:\Windows\system32
在这里输入命令
dism /image:C:\ /get-drivers
你可以看到里面会列出很多驱动,都是装完系统之后额外安装的驱动。
因为命令提示符输出限制,你的驱动程序往往无法完全列举出来,前面输出的全部被挤出去了,看不到。
你这时可以输入这个命令:
dism /image:C:\ /get-drivers>D:\getdrvlist.txt
等命令执行完成之后,打开D盘的getdrvlist.txt,你就会看见一个完整的已安装驱动列表。
如果你用的是前面的纯命令行PE,那么在命令提示符输入D:\getdrvlist.txt并执行即可。
假如说你想删除冲突的MTP驱动,那么在这里查找mtp这个关键字,应该有一个驱动文件的原始文件名是带mtp的。然后我们看看,它的已发布名称是oemxx.inf。
在本例中,我需要删除YunOS的USB驱动,这里有一个yunos_winusb.inf的原始文件名,对应的已发布名称是oem10.inf。
就执行这个命令:
dism /image:C:\ /remove-driver /driver:oem10.inf
这么一来冲突的驱动程序就被卸载掉了。
除了使用dism命令行删除驱动之外,你还可以使用来自初雨团队的Dism++(www.chuyu.me)来删除驱动,同样的也需要在PE或WinRE环境下使用,只需要勾上你要删除的驱动,然后删除驱动即可。
重启之后回来,冲突的驱动程序就不会再被调用了。
补充:错误的WPDMTP驱动删除教程
去www.chuyu.me下载对应你的系统位数的dism++。
打开选项——详细设置,勾上“启用专家模式”。
勾上之后,确定,关闭Dism++再重新打开。
点“驱动管理”,依次展开“便携设备”、“Microsoft”,勾上wpdmtp.inf-5.2.5326.4762,点一下删除驱动。操作完成之后,你就可以关闭dism++了。
如果这个时候你的手机连接电脑还有问题的话,请将手机连接电脑,运行control printers,删除里面中招的手机。
现在拔下手机再重新连接,问题应该就得到解决了。