如何使用 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 实例上安装和卸载任何浏览器?

从 rbenv 卸载 ruby​​ 版本

如何使用命令行卸载 Apache

如何在 ubuntu 上卸载 Ruby?

mysql 到 pdf - python 或 ruby​​ [关闭]

如何从 /usr/local 卸载 Ruby?