“此操作只对目前安装的产品有效”的终极解决办法
今天在Windows 7下安装软件新版本时,不小心误点了卸载旧版本安装进程界面的“取消”按钮。
导致再次运行安装程序的时候卡在了一个蛋疼的“此操作只对目前安装的产品有效”安装提示界面。
想到可能是刚才卸载进程中断,导致旧版本没卸载干净。
于是搜索注册表删除了大多数和SU相关的注册表信息,结果情况依然。
各种卸载软件测试一遍,均没有发现有旧版本的影子。
用谷歌搜索偶然发现,收到启发,然后查看了msiexec这个命令的相关参数如下:
msiexec /Option <Required Parameter> [Optional Parameter]
安装选项
</package | /i> <Product.msi> ?安装或配置产品
/a <Product.msi> ?管理安装–在网络上安装产品
/j<u|m> <Product.msi> [/t <Transform List>] [/g <Language ID>] ?公布产品– m 公布到所有用户,u 公布到当前用户
</uninstall | /x> <Product.msi | ProductCode> ?卸载产品
显示选项
/quiet ?安静模式,无用户交互
/passive ?无人参与模式–只显示进度栏
/q[n|b|r|f] ?设置用户界面级别
n –无用户界面
b –基本界面
r –精简界面
f –完整界面(默认值)
/help ?帮助信息
重新启动选项
/norestart ?安装完成后不重新启动
/promptrestart ?必要时提示用户重新启动
/forcerestart ?安装后始终重新启动计算机
日志选项
/l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] <LogFile>
i –状态消息
w –非致命警告
e –所有错误消息
a –操作的启动
r –操作特定记录
u –用户请求
c –初始用户界面参数
m –内存不足或致命退出信息
o –磁盘空间不足消息
p –终端属性
v –详细输出
x –额外调试信息
+ –扩展到现有日志文件
! –每一行刷新到日志
* –记录所有信息,除了v 和x 选项
/log <LogFile>
与/l* <LogFile> 相同
更新选项
/update <Update1.msp>[;Update2.msp] ?应用更新
/uninstall <PatchCodeGuid>[;Update2.msp] /package <Product.msi | ProductCode> ?删除产品的更新
修复选项
/f[p|e|c|m|s|o|d|a|u|v] <Product.msi | ProductCode> ?修复产品
p –仅当文件丢失时
o –如果文件丢失或安装了更旧的版本(默认值)
e –如果文件丢失或安装了相同或更旧的版本
d –如果文件丢失或安装了不同版本
c –如果文件丢失或较验和与计算的值不匹配
a –强制重新安装所有文件
u –所有必要的用户特定注册表项(默认值)
m –所有必要的计算机特定注册表项(默认值)
s –所有现有的快捷键方式(默认值)
v –从源运行并重新缓存本地安装包
设置公共属性
[PROPERTY=PropertyValue]
于是尝试开始菜单/运行/输入“cmd”,输入命令”msiexec /o ?e:/a.msi“,终于搞定。
如果安装包是.exe后缀的,可以尝试用WinRAR软件解压缩到独立文件夹,应该就能找到一个.msi的文件,然后参照命令(msiexec /o ?e:/a.msi)替换相应选项参数和文件路径即可。