.net 不使用msiexec从命令行卸载MSI文件
.net 不使用msiexec从命令行卸载MSI文件,.net,installation,command-line,wix,windows-installer,.net,Installation,Command Line,Wix,Windows Installer,msiexec是安装程序的命令提示符软件。但我发现,您可以通过在命令行中键入MSI文件的名称,从命令行安装MSI文件 但是为了卸载MSI文件,您似乎必须调用msiexec程序并为其提供/x或/uninstall 如何在不使用msiexec例程的情况下从命令行卸载MSI?将MSI文件扩展名映射到msiexec(同样,在命令提示符下键入.txt文件名会启动记事本/default.txt文件处理程序来显示文件) 因此,键入一个扩展名为.msi的文件名确实会以msi文件作为参数运行msiexec,并执行
msiexec
是安装程序的命令提示符软件。但我发现,您可以通过在命令行中键入MSI文件的名称,从命令行安装MSI文件
但是为了卸载MSI文件,您似乎必须调用msiexec
程序并为其提供/x
或/uninstall
如何在不使用
msiexec
例程的情况下从命令行卸载MSI?将MSI
文件扩展名映射到msiexec(同样,在命令提示符下键入.txt文件名会启动记事本/default.txt
文件处理程序来显示文件)
因此,键入一个扩展名为.msi的文件名确实会以msi文件作为参数运行msiexec,并执行默认操作install。因此,卸载要求您使用卸载开关调用msiexec以取消调用它。我假设当您在命令行中键入int file.msi时,Windows会自动为您调用msiexec file.msi。我这样假设是因为当你输入picture.png时,它会显示默认的图片查看器。简短回答:你不能。使用MSIEXEC/x 详细回答:当您直接在命令行上运行MSI文件时,所发生的一切就是它为您运行MSIEXEC。此关联存储在注册表中。您可以通过(在Windows资源管理器中)转到“工具/文件夹选项/文件类型”查看关联列表 例如,您可以从命令行运行.DOC文件,写字板或WinWord将为您打开它
如果查看注册表中的
HKEY_CLASSES\u ROOT\.msi
,您将看到.msi文件与ProgID“msi.Package”相关联。如果您查看HKEY_CLASSES\u ROOT\Msi.Package\shell\Open\command
,您将看到Windows在“运行”一个.Msi文件时实际使用的命令行。我将尝试以下语法-它对我有效
msiexec /x filename.msi /q
快速选项:
按产品GUID卸载:()-下面第3节记录。还有:
通过MSI文件卸载:
快速互动:
卸载MSI软件包的方法有很多种。以下内容旨在作为“参考”: 总之您可以通过以下方式卸载:msiexec.exe,ARP,WMI,PowerShell,部署系统,如SCCM,VBScript/COM自动化,DTF,或通过隐藏的Windows缓存文件夹,以及下面介绍的一些其他选项 前几段提供了重要的MSI花絮,然后有14个章节提供了卸载MSI文件的不同方法。普 “嘟嘟,嘟嘟-结束”:部分1、2和3是正常卸载方法(因此建议)
我个人使用第3节中的选项3或5
(这两个选项都带有日志记录,但选项5以静默方式运行)
以及)。如果您非常忙,请跳过所有的唠叨,选择一个
其中之一——它将完成工作
如果您在完全卸载时遇到问题,并且正在寻找不推荐的MsiZap.exe和/或Windows Installer清理实用程序(msicu2.exe)的替代方法,您可以尝试新的()。显然,可能也适用于其他安装问题 更新的清理方法列表:
如果您认为MSI和Windows Installer的问题比它的价值更大,那么您可能想了解一下
Installscript MSI设置通常包装在setup.exe文件中。要了解有关用于卸载此类设置的参数的更多信息,请参阅以下链接:
一些MSI文件通过(WiX工具包)或项目等机制作为捆绑包的一部分安装。这会使卸载与下面看到的略有不同。这是
请注意,以静默方式运行卸载或以交互方式运行卸载可能会导致不同的结果(!)。关于这种情况的详细说明,请阅读以下帖子:
如果在尝试卸载时意外要求您提供原始安装介质,请阅读以下回答:,或者阅读下面第12节,了解一些重要的技术细节
如果安装了或类似的清理工具,请跳到第11节
如果卸载完全失败(无法运行),请参阅下面的第12和13节,了解使用和/或清理工具“撤消安装”的可能方法
1-
使用原始MSI
- 如果您有权访问用于安装的原始MSI,只需在Windows资源管理器中右键单击它,然后选择卸载
- 您也可以通过命令行卸载,如第3节所述
2-
使用旧的ARP小程序或新的Windows 8/10设置界面
- 只是提到了正常的方法,虽然这是显而易见的
=ARP
(添加/删除程序Applet
)appwiz.cpl
=>用于相同操作的新外壳Windows 10设置界面
- ARP:
- 开始
msiexec.exe /x {11111111-1111-1111-1111-11111111111X}
msiexec.exe /x "c:\filename.msi"
Right click MSI file in Windows Explorer and select "Uninstall".
msiexec.exe /x "c:\filename.msi" /QN /L*V "C:\msilog.log" REBOOT=R
msiexec.exe /x {11111111-1111-1111-1111-11111111111X} /QN /L*V "C:\msilog.log" REBOOT=R
/X = run uninstall sequence
/QN = run completely silently
/L*V "C:\msilog.log"= verbose logging at path specified
{11111111-1111-1111-1111-11111111111X} = product guid of app to uninstall
REBOOT=R = prevent unexpected reboot of computer
$app = Get-WmiObject -Class Win32_Product -Filter "Name = 'YOUR_APP'"
$app.Uninstall()
Set installer = CreateObject("WindowsInstaller.Installer")
installer.InstallProduct "product.msi", "REMOVE=ALL REBOOT=ReallySuppress"
Set installer = Nothing
wmic product get name