我正在尝试找出 Windows 存储有关已隐藏更新的信息的位置。还有另一个提出这个问题,但实际上并没有给出位置,只给出了不通过官方WU界面修改隐藏更新的方法。
我想知道的原因是 Windows 更新会创建 1.3GB 的文件%systemroot%\SoftwareDistribution\DataStore
,%systemroot%\Logs\CBS
更新后我会删除这些文件。问题是上次我使用 WU 时,所有之前隐藏的更新都恢复了,这让我怀疑 WU 可能将隐藏的标志存储在这个非常庞大(而且臃肿且几乎完全为空)的DataStore.edb
文件中——将它们存储在各种日志文件中似乎不可行。
通常情况下,我会简单地做一些测试来确认,但考虑到 WU 几乎需要两小时每次运行时,我都很不愿意这样做。
有人知道 Windows 将隐藏更新设置存储在哪里吗?
答案1
我本想在周五完成一些工作,但我却浪费了时间做测试(同时观看了一些教育视频)。现在我和其他人都有了具体的、经过测试的确认,而不仅仅是怀疑。为了减少互动和混淆变量,我从最不可能的候选人开始。
测试
首先被删除的是CBS.log
(涉及 SFC 的文件)。也许并不奇怪,隐藏的更新仍然在列表中。
接下来是SoftwareDistribution\DataStore\Logs
目录。这些日志文件实际上不是空的,里面充满了文本,但仍然压缩到几乎没有内容(可能是因为它们是 Unicode)。隐藏的更新被保留了下来。
终于DataStore.edb
拿到了斧头。遗憾的是,这导致隐藏更新被重置。
我真的希望情况并非如此,但不幸的是,事实确实如此。在哪里在文件中,更新被标记为隐藏,这是任何人都无法猜测的。我找到了一些关于可扩展存储引擎格式的信息,但这并不值得付出努力,因为保留文件确实不是似乎可以让 WU 扫描速度更快。我试过,但还是花了很长时间。(我可能夸大了两个小时,但不管有没有,还是要花 45-60 分钟DataStore.edb
。)
解决方法
压缩
作为一种解决方法(我真的厌倦了必须解决每个程序中的每个问题),我建议遇到这种情况的任何人都可以简单地压缩文件然后删除它。由于文件几乎完全是空的,它将超过 1GB 的文件压缩到仅约 17MB。然后您可以在执行更新检查时解压缩它,然后重新压缩它。即使使用最大设置,压缩速度也出奇地快。但这有几个问题:
- 它仍然会增加驱动器的磨损。
- 执行更新之前需要足够的空间来解压缩。
- 此解决方法仅适用于那些进行手动更新的用户,因此任何使用自动更新(或使用 Windows 10)的人都必须咬紧牙关并浪费大量空间(尽管您仍然可以删除 150MB 文件
CBS.log
而不影响隐藏的更新列表)。
外部列表
另一个选择是列出您隐藏的更新,以便更容易处理。不幸的是,WU 界面不提供将列表复制到剪贴板的方法,并且从 Vista 开始,Microsoft 将 Explorer 切换到了一组不同的控件,因此您无法使用类似系统导出器。因此,您必须截取隐藏更新列表的屏幕截图,或者手动将其全部记下来。