首页
社区
课程
招聘
[讨论]MsiExec 软件静默卸载
发表于: 2023-4-23 16:58 6390

[讨论]MsiExec 软件静默卸载

2023-4-23 16:58
6390

1、软件卸载

1.1 MsiExec

使用提示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
Windows ® Installer. V 5.0.22621.1
 
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]
 
请查阅 Windows (R) Installer SDK 获得有关命令行语法的其他文档。
 
版权所有 (C) Microsoft Corporation. 保留所有权利。
此软件的部分内容系基于 Independent JPEG Group 的工作。

1.2 软件静默卸载,以QQ为例

打开注册表项

 

32位

1
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall

64位

1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\

打开cmd,管理员权限下执行UninstallString字段的值

1
MsiExec.exe /X{052CFB79-9D62-42E3-8A15-DE66C2C97C3E}

以上操作方式会有多个弹窗,并不能真正实现软件在后台的静默卸载,要实现静默卸载,则应当使用如下的方式进行卸载,添加/quiet选项字段

1
MsiExec.exe /X{052CFB79-9D62-42E3-8A15-DE66C2C97C3E} /quiet

或者

1
MsiExec.exe /X{052CFB79-9D62-42E3-8A15-DE66C2C97C3E} /qn /norestart

2、话题讨论

以上方式,最终仍然会有如下所示弹窗
图片描述
最终软件确实静默卸载完成,但要使这个弹窗不显示,有没有什么好的方法?
(除了使用FindWindow函数去查找窗口的方法)


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 94
活跃值: (465)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
事先把这个弹窗的EXE删了行不行?
2023-4-27 10:55
0
游客
登录 | 注册 方可回帖
返回
//