在不使用msiexec的情况下从命令行卸载MSI文件

时间:2009-01-16 10:37:02

标签: .net command-line installation windows-installer msiexec

msiexec是安装MSI程序的命令提示符软件。但我发现只需在命令行输入MSI文件的名称,就可以从命令行安装MSI文件。

但是为了卸载MSI文件,您似乎必须调用msiexec程序并为其设置/x/uninstall

如何在不使用msiexec例程的情况下从命令行卸载MSI?

7 个答案:

答案 0 :(得分:142)

答案 1 :(得分:45)

简短的回答:你做不到。使用MSIEXEC / x

答案很长:当您在命令行直接运行MSI文件时,所发生的一切就是它为您运行MSIEXEC。此关联存储在注册表中。您可以通过(在Windows资源管理器中)查看工具/文件夹选项/文件类型的关联列表。

例如,您可以从命令行运行.DOC文件,WordPad或WinWord将为您打开它。

如果查看HKEY_CLASSES_ROOT\.msi下的注册表,您会看到.MSI文件与ProgID“Msi.Package”相关联。如果查看HKEY_CLASSES_ROOT\Msi.Package\shell\Open\command,您将看到Windows“运行”.MSI文件时实际使用的命令行。

答案 2 :(得分:31)

另请记住,可以使用WMIC命令启动卸载:

wmic product get name - >这将列出所有已安装应用程序的名称

wmic product where name='myappsname' call uninstall - >这将卸载该应用程序。

答案 3 :(得分:3)

msi文件扩展名映射到msiexec(在命令提示符下键入.txt文件名的方式相同,启动Notepad / default .txt文件处理程序以显示文件。)

因此,输入带有.msi扩展名的文件名实际上以MSI文件作为参数运行msiexec并采取默认操作install。因此,卸载需要您使用卸载开关调用msiexec以取消安装。

答案 4 :(得分:2)

wmic product get name

只是让cmd卡住......几分钟后仍然闪烁_

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall中,如果您可以找到包含您尝试安装的软件名称的文件夹(而不是使用ProductCode命名的文件夹),则UninstallString指向应用程序自己的卸载程序C:\Program Files\Zune\ZuneSetup.exe /x

答案 5 :(得分:1)

我会尝试以下语法 - 它对我有用。

msiexec /x filename.msi /q 

答案 6 :(得分:-1)

我假设当你在命令行输入int file.msi时,Windows会自动为你调用msiexec file.msi。我假设这是因为当你输入picture.png它会调出默认的图片浏览器。