-1

我有很多搜索,以了解如何检测不必要的Windows \ Installer文件!如何检测不必要的Windows Installer文件

我相信很多人以前都遇到过这个问题,并以某种方式解决它。

现在,当我来看看Windows Server 2008上我---

C:\Windows\Installer 

目录R2,我可以看到它已经花了42 GB出来,如果总126 GB。

现在我想知道我可以删除Installer目录中的所有文件,或者我必须检测哪个文件可以被删除!

有没有人知道这个问题的任何解决方案!

+0

42GB是太多了。我会怀疑恶意软件或腐败。你是问题。可能是脱离主题,并可能会脱离主题,并可能会被关闭。我会建议看看一个名为Patchcleaner的工具,尽管我只是通过传闻才知道它。 – user1167442

回答

1

你如何定义不必要的?

专业系统案例:您希望最小的占地面积并愿意牺牲您不​​期望使用的功能。

如果一切正常,C:\ Windows \ Installer中的每个文件都是已安装的Windows Installer软件包,修补程序,转换等的本地缓存。它们是卸载所必需的,需要auto-repairon-demand installation才能成功。如果你永远不需要这些机器上的任何东西(例如,如果你将它们作为虚拟机按需提供,并且将重建它们而不是卸载某些东西),那么除非应用程序本身自己调用Windows Installer API,否则它可能是相对的可以安全地从C:\ Windows \ Installer中删除文件。另外,您可以调用Windows Installer API MsiSourceListEnum来查找用于这些相同目的的文件的其他缓存。删除这些文件可能同样安全(或不安全)。

更常见的情况:你宁愿不重建系统

如果怀疑有从之前的升级或卸载遗留该文件夹中未引用的文件,你可以尝试使用Windows Intstaller API调用验证这一点。在非常低的水平上,您可以拨打MsiEnumProducts(或可能是MsiEnumProductsEx)查找所有已安装产品的产品代码,然后拨打MsiGetProductInfo/Ex(szProduct,INSTALLPROPERTY_LOCALPACKAGE,...)查找其缓存的.msi文件和INSTALLPROPERTY_TRANSFORMS以获取列表其转换。然后用MsiEnumPatches/Ex查找所有的修补程序代码和MsiGetPatchInfo/Ex(再次使用INSTALLPROPERTY_LOCALPACKAGE和/或INSTALLPROPERTY_TRANSFORMS)以列出它引用的.msp和.mst文件。理论上,这里引用的所有文件的完整集应该与C:\ Windows \ Installer中的全套文件相匹配。 (或者有更多的参考资料去寻找...)

(在你写任何事情做这件事之前,请考虑一下可能有应用程序自动执行此操作,或者更聪明一点,比如引用的那个在另一个答案)。

1

无法将它们全部删除。

关于你的问题有一个很好的answer,我在我的实验室测试。这个对我有用。

注:如果可能的话,你还是这个文件夹复制到另一硬盘上(如E :)