事情起因很简单。我现在在用的平板Lenovo Helix是去年海淘的,因为折扣好,配置也不高。SSD才128GB。

    Windows 10 推送安装后,SSD剩余空间一天比一天小,哪怕我经常清理磁盘,仍然总在20GB左右徘徊。忽然有一天,空间只剩15GB了,是谁突然偷走了我的磁盘空间?

    以我的经验,空间十有八九是被Windows占掉了。于是在Windows目录一顿找,果然发现一个目录比以前大了很多,这个目录就是:

   C:\Windows\System32\DriverStore

   一个放驱动的目录,凭啥用了我10GB的空间……坚决要想办法解决这个问题。

   仔细看看每个目录的大小,发现一堆hdx打头的驱动文件夹都很大。打开看看,里面居然都是realtek的音频驱动。从100MB+到200+MB不等,光是这些驱动文件夹就占了接近8GB的空间。看来,每个inf文件都把大量的驱动文件保存了一份。

   删掉是必须的,可是……删不掉……

   DriverStore是由Windows系统管理的驱动程序库,官方是不建议自行手动删除的。打开文件夹的属性,在安全页上可以看到,这些文件的所有者是System,所以用户即使是Administrator权限,依然无法删除这些文件夹。

    可是,我是艺(No)高(Zuo)人(No)胆(Died)大(Why)死(You)磕(Try)啊。抢所有者(ownership),改权限,然后再删。问题来了,几十个文件夹,这个周末我就干这个了?

    当然不,我要提升权限到System。

    在Windows XP时代,提升System权限可以通过Task方式进行,因为Task运行在System权限下,很容易用它获得一个System身份运行的进程。后来的Windows修改了这个漏洞。唯一可行的方式是PsExec。

    PsExec是SystemInternals工具集中的一个工具。用它可以以特定身份运行进程。于是,我运行:

    寸土必争——光复驱动缓存侵占的空间_第1张图片

    打开一个System权限运行的命令行窗口,开始删除。

    寸土必争——光复驱动缓存侵占的空间_第2张图片

    很快我就厌倦了,这比在UI界面下改所有者和权限再删除也没快多少啊。再说,直接删除文件夹,心里还是有点虚……

    我得找找办法。微软官方果然有对策:

    Remove a Driver Package from the Driver Store

    https://technet.microsoft.com/en-us/library/cc730875.aspx

   

    其实有个程序我并不陌生,以前用它在System Center Configuration Manager的OSD的时候安装驱动,这个程序就是 PnPUtil

    这个程序除了在命令行下利用inf文件安装驱动程序之外,也可以导出现有所有非微软操作系统自带驱动,即OEM驱动的清单:

    pnputil.exe –e > x:\oemdrv.txt

    打开这个文本文件,找到我侵略我磁盘空间的realtek驱动:

    寸土必争——光复驱动缓存侵占的空间_第3张图片

    找到发布名称后面的oem#.inf,记住这个文件名,例如oem101.inf。

    回到命令行,使用pnputil安全删除这个驱动文件夹。

    寸土必争——光复驱动缓存侵占的空间_第4张图片

    这就击退了侵占磁盘的驱动文件夹了。

    故事还没完,待续……