.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.exeARPWMIPowerShell,部署系统,如SCCMVBScript/COM自动化,DTF,或通过隐藏的Windows缓存文件夹,以及下面介绍的一些其他选项

前几段提供了重要的MSI花絮,然后有14个章节提供了卸载MSI文件的不同方法。普

“嘟嘟,嘟嘟-结束”:部分123正常卸载方法(因此建议)
我个人使用第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

    • 开始开始跑步appwiz.cpl→ 输入以打开添加/删除请购单
      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