相关疑难解决方法(0)

如何找到已安装的MSI设置的产品GUID?

我需要找到产品GUID对于安装MSI文件,以进行维护,如补丁,卸载,也为审计目的.

powershell install windows-installer wix uninstall

58
推荐指数
1
解决办法
18万
查看次数

如何使用没有.msi文件的产品ID guid与msiexec一起卸载

我正在尝试自动卸载使用WiX创建的软件包,以便更改已安装的软件堆栈和配置,而无需重新配置整个操作系统.最终我将使用powershell脚本来执行此操作,但目前我似乎无法使用cmd以交互方式卸载我的测试包.

如果我跑:

msiexec /x '{A4BFF20C-A21E-4720-88E5-79D5A5AEB2E8}'

msiexec /x A4BFF20C-A21E-4720-88E5-79D5A5AEB2E8

我明白了:

"无法打开安装包.验证包是否存在以及您是否可以访问它,或联系应用程序供应商以验证这是否是有效的Windows Installer程序包."

如果我跑: msiexec /x {A4BFF20C-A21E-4720-88E5-79D5A5AEB2E8}

我明白了:

"此操作仅对当前安装的产品有效"

我查看了Windows安装程序指南,WiX文档,msiexec文档,并使用orca自己查看.msi,但我还没有找到任何可以清楚地了解卸载处理方式的内容.是否需要.msi文件,如果没有,那么为什么Windows安装程序在给出GUID时似乎认为它是?

.msi安装程序的WiX代码是:

<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns='htp://schemas.microsoft.com/wix/2006/wi' >

  <!--DO NOT COPY / PASTE THE PRODUCT ID GUID BELOW TO YOUR OWN WIX SOURCE -->

  <Product Id='A4BFF20C-A21E-4720-88E5-79D5A5AEB2E8' Language='2057' 
           Manufacturer='COMPANYNAME IT-Operations' 
           Name='COMPANYNAMEServerListener' Version='1.0.0' 
           UpgradeCode='PUT-GUID-HERE'>

   <Package Id='*' Manufacturer='COMPANYNAME IT-Operations' Compressed='yes' />
   <Media Id='1' Cabinet='COMPANYNAMEServerListener.cab' EmbedCab='yes' />

    <Directory Id='TARGETDIR' Name='SourceDir'>
      <Directory Id='ProgramFilesFolder' Name='PFiles'>
      <Directory Id='COMPANYNAME' Name='COMPANYNAME'>
        <Directory Id='INSTALLDIR' Name='COMPANYNAMEServerListener'>
        <Component Id='MainExecutable' Guid='*' > …
Run Code Online (Sandbox Code Playgroud)

windows-installer wix uninstall msiexec

26
推荐指数
4
解决办法
14万
查看次数

如何找到已安装的MSI文件的升级代码?

在某些情况下,可能需要检索已部署软件包的MSI升级代码.

常见场景:

  • 我接管了其他人的MSI项目,我需要确定哪些升级代码用于以前的版本.这是处理升级方案所必需的.我没有任何版本的存档.
  • 我在开发过程中不小心多次更改了我的WiX软件包的升级代码,我需要"在野外"找到所有升级代码版本.我不知道升级代码应该在版本之间保持稳定.

这是一个Q/A风格的问题.

这个问题以各种形式出现过,但这不是重复的.我发布了一种使用主MSI自动化接口(或严格来说WMI)的方法.它应该比先前答案的基于注册表的方法更可靠.这个答案也试图总结其他检索方法.

vbscript powershell wmi windows-installer wix

12
推荐指数
1
解决办法
7972
查看次数