欢迎光临 Enjoy IT (ITECN.NET) 登录 | 注册 | 帮助

UU'S T&T

TIPS AND TROUBLESHOOTS FOR WINDOWS

公告

  • 本Blog站点上的任何言论仅代表个人观点,与其所在的公司没有任何关系。本Blog站点的内容是按原样提供的,作者与其公司并不对其提供任何种类的担保。此外还否认所有暗示的保证,包括但不局限于在任何试销性或某一特定用途的适用性方面的暗示保证。由于本站内容的使用或性能表现带来的全部风险将由使用者自己承担。任何由于使用或无法使用本站内容而带来的损失(包括但不局限于商业利润、业务中断、业务信息或其他财产上的损失),即使在 本站作者曾经被提醒可能出现这些损失的情况下,本站 及其作者或涉及内容创建的任何其他人等对任何上述的损失概不负责。
    ·本BLOG的内容均属技术交流之用,本人对所发表的文章、图片、随笔保留一切权利。
    如文章、图片、随笔转载请注明:
    作者姓名:尤扬
    文章来源URL:
    http://blogs.itecn.net/blogs/youyang
    同时请通过EMAIL通知本人:
    youyang1983◎hotmail.com
    ·如果通过EMAIL与我联系,并最终解决的问题,我将发表于本BLOG进行技术分享,如果涉及隐私或有特殊要求请于EMAIL中说明!
    本人联系方式:
    MSN ID:youyang1983◎hotmail.com(常用)
    QQ ID:85836514
    EMAIL:v-yayou@microsoft.com
    ·技术就是无条件共享


    2005年7月 Microsoft MVP for Windows-Shell\User
    2006年7月 Microsoft MVP for Windows-Shell\User
    2007年7月 Microsoft MVP for Windows-Shell\User

Microsoft

朋友的网站

浅谈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.

 

Posted: 2007年3月25日 12:09 作者 youyang

评论

量子公民 说:

这个和你说的是同一个东西吗?

%SystemRoot%\Drivers\lan\DPInst.exe

# 三月 25, 2007 16:50

youyang 说:

Hi,量子公民

感觉上应该是,但你提供的路径没有重现性,我估计是你的网卡自己装驱动之后,忘记清理安装工具造成的。

# 三月 25, 2007 17:15

ahpeng 说:

UU,这个工具在C:\Program Files\MSN Messenger\Device Manager也有,咔咔咔~~不过真的不错,不说的话,很难发现还有这个东东。

还有inf文件命加随机字符串,这个我估计是文件的hash演变而来,目的是为了区分同名的inf文件。

C:\Windows\Prefetch下的Prefetch文件,也是这样命名的。

这里倒是有一个问题,既然FlieRepository只有SYSTEM可以Write Perm,那么DPinst怎么拿到的Perm?

# 三月 25, 2007 18:21

Abram 说:

# 六月 13, 2007 21:35

Simon 说:

6b53a56b1