浅谈Windows Vista 下设备驱动的卸载
干我们这一行的,就得研究怎么把操作自动化,所以我的Blog上面基本都是Command-Line的东西,为啥,这东西好啊,一个Batch就可以随便使用了,因为我们有WTT。
跑题了,嗯,今天谈谈在Windows Vista 下如何卸载设备的驱动,
稍等,我先把Vista还原了先...
OK,说正题
不知道大家有没有这样的体会,明明卸载了驱动,但是重新一扫描即插即用驱动,那个驱动又重新安装上了?
所以,对付这类驱动,我们往往要选中图中的这个设置:

否则,就会产生我上面提到的现象,有人说可能会说,肯定有一个驱动的缓存机制,把那个缓存找到并且删除不就可以了么。
嗯,这也是我开始想到到的,但是从Windows的秉性来说,我觉得够呛。
经过一番寻找,发现驱动的缓存是在这里:
%Systemroot%\System32\DriverStore\FlieRepository
在这个文件夹下面,还有很多子文件夹,而命名是以安装设备时的inf文件命加随机字符串的方式(也不是随机,但是我不知道其中的算法)
比如NV4.inf_0df28998之类的,
但我上面为啥说够呛呢?
因为这个文件夹的访问权限是,Everyone没有写入和修改权限,只有System有Full Control。这样看来,基本我就得放弃这个思路了,那还怎么办?
有人说你可以用devcon,嗯,是一种解决方案,但是,对付上面提到的情况,貌似无能为力了。
又是在MS内网里面的苦苦寻找,我找到了一个工具:
DPInst.exe
Microsoft Driver Packet Installer.
虽然这个工具的安装没有devcon来的舒服,但是它的卸载功能绝对一流,上面提到的情况,只需要一个命令就可以解决了,比如
DPInst /U <INF-FILE 路径> /S /D
/U path to INF file
Uninstall a driver package (INF-file).
/S | /Q Silent (Quiet) mode. Suppresses the Device Installation
Wizard and any dialogs popped-up by the operating system.
/D Delete driver binaries on uninstall.