通过 CMD 静默卸载程序

通过 CMD 静默卸载程序

有没有什么方法可以在没有图形界面的情况下卸载程序,并通过 CMD 来执行?

答案1

根据 Microsoft 指南正确安装的每个程序都会在 中创建一个注册表项HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall。通常,程序的键将是其 GUID,或者是程序的名称。该键内将有一个名为 的条目UninstallString。它包含要执行以卸载程序的命令。

如果您已经提前知道要卸载的内容,那么将其放入批处理文件中应该很容易。但是,当您尝试自动执行该过程时,它会变得很棘手。您可以使用该reg命令从注册表中获取数据,但它会返回大量围绕给定键的实际值的文本,这使得它很难使用。您可能想尝试使用 VBscript 或 PowerShell,因为它们有更好的选项可以将数据从注册表获取到变量中。

答案2

您可以使用 WMIC 调用正确的卸载程序,而无需知道 GUID 等。

要查看 Windows 内部已知的程序名称列表:

wmic product get name

查找您的产品名称。它可能与“程序和特点”控制面板,但并非总是如此。

然后你可以使用

wmic product where name="_my_product_name" call uninstall

执行卸载,据我所知应该是静默的(根据我的经验,这是应该的,但在你孤注一掷之前先尝试一下。静默可能取决于你的安装程序/卸载程序是如何构建的)。

更多详情请参见此处:

microsoft.com 上还有 WMIC 的参考文档。

答案3

如果您安装了 PowerShell 3(或更高版本),则可以发出 WMI 调用来获取所有名为某个特定事物的程序(或“类似”某个特定事物,进行通配符搜索),然后Uninstall对每个程序调用该方法:

(Get-WmiObject -Query "SELECT * FROM Win32_Product WHERE Name like '%Partial Name%'").uninstall()

答案4

如果您知道 MSI 安装程序文件的位置,则可以使用:

Msiexec /卸载应用程序.msi /quiet

相关内容