如何使用 python 或(和)ruby 卸载任何应用程序
Posted
技术标签:
【中文标题】如何使用 python 或(和)ruby 卸载任何应用程序【英文标题】:How to uninstall any application using python or (and) ruby 【发布时间】:2011-10-22 03:30:02 【问题描述】:我没有通过这个问题在网上找到任何有用的主题。 这些都是关于如何卸载python或卸载ruby,但没有关于#TOPIC的信息。
主要问题是我使用了其他有趣的answers 尝试使用 PowerShell 脚本卸载应用程序,但这一切都对我没有帮助,因为带有 -Query "query" 的多个变体的脚本甚至无法找到我的应用程序不严格的掩码,如“%APPL_NAME%”或按版本号。
似乎 Win32_Product 表填充不正确或任何功能现在都无法正常工作。 此外,对我来说,如果我有这么灵活的语言,使用 PowerShell 并不是那么酷。
所以我对如何通过 ruby 或 python 卸载任何程序的方法很感兴趣。
感谢您的任何想法 :-)
编辑: 让我换个方式问这个问题。如何卸载通过 MSI 安装程序安装的普通程序
编辑: 为什么这么强烈?我不是一个完美的 IT 人,而且我来自俄罗斯,不太懂英语。我不应该得到减分。您可以将其保持为零。 谢谢你。
编辑: 感谢所有回复。我很感激。
【问题讨论】:
您是否使用 WMI 来安装您的应用程序?如果不是,如链接问题中所述,那里的答案将找不到您的应用程序。 哦,好吧,我会尝试安装 WMI。谢谢你。并对我的疏忽感到抱歉。但现在我对使用 ruby 或 py 实现这种方法很感兴趣。 :-) 这很难或不可能。 Python 和 Ruby 是为 Unix 而设计的,而不是 Windows。 在 Windows 上使用 Python 会很容易,你只需要运行一个命令行。不过,我无法评论 Ruby 从未使用过它。 【参考方案1】:您可以在 ruby 或 python 中调用 WMIC 命令。流程如下:
wmic product get name
该命令将列出所有具有正式名称的软件,例如办公产品,名称可以是“Microsoft office 20003 Pro”或“Microsoft office 2003 Home & Student”,可以使用ruby或python过滤掉确切的名字是什么然后执行
wmic product where name='Microsoft office 2003 Home & Student' call uninstall
将“Microsoft office 2003 Home & Student”替换为您喜欢的应用程序。
如果你不喜欢直接执行wmic,你可以导入python wmi或者ruby wmi来代替。
【讨论】:
【参考方案2】:“卸载 any 程序” - 邪恶/设计不良的程序可能会创建隐藏在许多地方的文件 - 我看不出有什么方法可以创建可以找到所有这些文件的程序。 (例如:any包括各种恶意软件)
【讨论】:
好的。让我换个方式问这个问题。如何卸载通过 MSI 安装程序安装的普通程序。【参考方案3】:您可以通过 msiexec 命令对基于 msi 的安装进行大量操作。您可以从您选择的脚本语言中运行\spwan。
msiexec /?
您需要包信息(主要是 GUID)- 可以在这里找到:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer
Product
子键可能是您最感兴趣的。
HTH, 马特
【讨论】:
以上是关于如何使用 python 或(和)ruby 卸载任何应用程序的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 python 在 EC2 实例上安装和卸载任何浏览器?