如何用Python或Ruby卸载应用程序

6 投票
3 回答
11770 浏览
提问于 2025-04-16 23:06

我在网上找了很多资料,但没有找到关于这个问题的有用信息。大部分都是关于如何卸载Python或Ruby的,但没有关于#{TOPIC}的内容。

我主要的问题是,我尝试用PowerShell脚本卸载一个应用程序,参考了其他一些有趣的答案,但都没有成功。因为那些脚本用不同的-Query "query"选项都找不到我的应用,即使我用模糊匹配,比如'%APPL_NAME%'或者版本号。

看起来Win32_Product表的数据填得不对,或者某些功能现在不好使。而且,对我来说,使用PowerShell并不太方便,因为我有其他更灵活的编程语言可以用。

所以我想知道有没有办法通过Ruby或Python卸载任何程序。

谢谢大家的想法:-)

编辑: 让我换个方式问这个问题。如何卸载通过MSI安装程序安装的普通程序?

编辑: 为什么要这么严厉?我并不是一个完美的IT人员,而且我来自俄罗斯,英语也不太好。我不应该被给负分。你们可以把我的评分保持在零。

编辑: 感谢所有的回复。我很感激。

3 个回答

3

你可以通过msiexec命令来做很多事情,特别是与基于msi的安装相关的操作。你可以从你喜欢的脚本语言中运行这个命令。

msiexec /?

你需要一些包的信息(主要是GUID)——这些信息可以在这里找到:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer

Product这个子键可能是你最感兴趣的。

希望这对你有帮助,

Matt

3

“卸载任何程序” - 有些恶意或设计不好的程序可能会在很多地方藏文件 - 我看不出有什么办法能找到它们所有的文件。(比如:这里的任何程序都包括各种恶意软件)

3

你可以在 Ruby 或 Python 中使用 WMIC 命令,步骤如下:

wmic product get name

这个命令会列出所有软件的正式名称,比如说,Office 软件的名称可能是 'Microsoft office 2003 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 库来使用。

撰写回答