You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MSI卸载自动化命令行能否同时删除新旧两个产品代码?

MSI同时卸载新旧版本产品的正确命令写法

首先要明确:msiexec的/x(卸载)参数一次仅支持指定一个卸载目标(可以是产品GUID、也可以是原始MSI安装包路径),不能在单次msiexec调用中同时传入两个卸载目标,你尝试的合并写法不生效。

正确实现方案(适配软件中心静默执行要求)

方案1:分两次调用msiexec执行卸载

如果你的需求是同时卸载旧版本、以及已安装的新版本,直接按顺序执行两条卸载命令即可,/qb参数已经满足静默基本要求,要完全无交互可替换为/qn:

:: 卸载旧版本
msiexec /x {旧版本产品GUID} /qb /norestart
:: 卸载已安装的新版本(两种写法二选一即可)
msiexec /x {新版本产品GUID} /qb /norestart
:: 或用新版本MSI包卸载
msiexec /x "newfilename.msi" /qb /norestart

如果是要在安装新版本前先卸载旧版本,再执行新版本安装,命令顺序如下:

msiexec /x {旧版本产品GUID} /qb /norestart
msiexec /i "newfilename.msi" /qb /norestart ALLUSERS=1

方案2:MSI内置Major Upgrade自动卸载旧版本(更规范的安装包制作方案)

如果是做安装包的正规流程,更推荐直接在MSI项目中配置*Major Upgrade(主版本升级)*规则,指定当检测到旧版本产品GUID时自动卸载,不需要额外写卸载命令,打包后直接安装新MSI就会自动处理旧版本卸载,适配软件中心的部署逻辑。

注意事项

  • 软件中心执行命令时默认使用系统权限,确保产品GUID没有写错、MSI路径是绝对路径或者系统上下文能访问的路径
  • 加上/norestart参数可以避免卸载过程中自动触发系统重启,符合企业部署的常规要求
  • 如果要完全隐藏卸载弹窗,把/qb换成/qn即可

内容的提问来源于stack exchange,提问作者ChangkyPopz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 00:24:03