![在 Windows PC 上卸载应用程序时,使用第三方卸载程序的理由是什么?](https://linux22.com/image/1379070/%E5%9C%A8%20Windows%20PC%20%E4%B8%8A%E5%8D%B8%E8%BD%BD%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%97%B6%EF%BC%8C%E4%BD%BF%E7%94%A8%E7%AC%AC%E4%B8%89%E6%96%B9%E5%8D%B8%E8%BD%BD%E7%A8%8B%E5%BA%8F%E7%9A%84%E7%90%86%E7%94%B1%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
每当我从 Windows 7 PC 上卸载应用程序或程序时,我总是转到控制面板并使用 Windows 内置实用程序来完成此操作,然后重新启动 PC。
因此,是否有理由使用免费的第三方卸载程序,例如雷沃,去执行同样的任务,而实际上它可能弊大于利(如果不小心的话)?
答案1
我看不出它有什么好处,添加/删除程序或 appwiz.cpl 中的所有内容都在注册表中HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall作为子键。
MSI 安装程序以以下格式写入其 GUID{AFF7153F-C4AA-4C48-AEE9-8611D276CE86}
这其实不是什么问题,只是读取密钥有点困难。有几种方法可以读取这些密钥。一种是值名称 DisplayName,其值将更友好,即(在本例中)Quest ActiveRoles Management Shell for Active Directory (x64)。
另一种方法是 Windows 将 GUID 的“压缩和散列”版本写入注册表的另一部分。
要对值进行哈希处理,请取 GUID {AFF7153F-C4AA-4C48-AEE9-8611D276CE86} 并反转每组十六进制值。AFF7153F 变为 F3517FFA,C4AA 变为 AA4C,并继续沿 GUID 向下移动,直到得到以下内容: {F3517FFA-C4AA-84C4-9EEA-68EC672D1168}
现在,删除 {、- 和 } 得到F3517FFAC4AA84C49EEA68EC672D1168 现在,您有了压缩和散列的 GUID,可以将其与另一个密钥进行比较。
您现在应该能够在注册表中的以下位置找到这个新的 GUID: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\产品
本质上,从 appwiz.cpl 或添加/删除程序进行的所有卸载都是调用卸载字符串 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall,您可以轻松地在命令提示符中复制此命令并获得相同的结果。
至于第三方卸载程序声称可以删除的孤立文件,我不会接受风险太低而只为获得一点好处。通常留下的东西无关紧要,一个带有许可证信息的注册表项或一个密钥,或者C:\Program Files\应用程序名称文件夹,我可以轻松自行删除。不过,我曾看到应用程序尝试清除共享 dll 文件,我十倍担心 Reno 之类的程序会捕获对共享 dll 的引用并帮我清除它,从而破坏另一个安装。
答案2
第三方卸载程序遵循与注册表清理程序相同的理念 - 请勿使用它们。
可以用两个词来描述它们:蛇油。
在实际的 IT 环境中,它们之所以不会被使用,原因很简单,它们只是蛇油而已,而且很容易造成更多的麻烦,而不是解决问题。