我开源了一个工具:把 Windows 安装包丢给它,剩下的交给自动化
做测试环境、安全研究或者企业内网运维的朋友大概都有这种痛苦:手里一堆安装包,一个个双击、点下一步、点完成,装完还要截图留证。Windows 又不像 Linux 有 apt/yum 那样的静默安装生态,各家安装器五花八门。
所以我把这段时间打磨的工具开源了:AutoTrigger,一款面向 Windows 的离线软件安装自动化工具。
仓库地址:github.com/pengchengyi… 下载:github.com/pengchengyi… (MIT 协议,单文件 EXE,不需要装 Go)
它能做什么
把一个安装包(或整个文件夹)交给 AutoTrigger,它会:
- 自动识别安装器类型——Inno Setup、NSIS、MSI、WiX Burn 等常见格式都有内置适配;
- 自动操作安装向导——点"下一步""接受协议""安装""完成",遇到自绘界面还可以用图像模板匹配(截图 → 标记按钮区域 → 后续自动命中)兜底;
- 采集安装证据——安装前后做基线快照对比,输出结构化结果 JSON,明确区分"装成了 / 疑似装成 / 装了一半 / 本来就装着 / 没装成"。
实测数据(不吹牛版)
管理员会话,Windows 10.0.26300 x64,22 个真实安装器:
| 类别 | 输出"安装完成" / 样本数 | 占比 |
|---|---|---|
| Inno Setup | 4 / 5 | 80.0% |
| NSIS | 5 / 5 | 100.0% |
| MSI | 5 / 6 | 83.3% |
| WiX Burn | 2 / 3 | 66.7% |
| 其他厂商安装器 | 2 / 3 | 66.7% |
| 合计 | 18 / 22 | 81.8% |
其余 4 个为"部分完成"。必须强调:这些数据来自历史构建,不代表最新版对所有软件的兼容率;任务结束或退出码为 0 不等于安装成功,请以结果 JSON 的状态、证据和日志为准。
几个设计上比较讲究的点
- 证据分级判定:不是看"进程退出"就宣布成功,而是安装前后快照对比 + 证据分级 + 反证据仲裁,给出高/中/低置信度;
- 活动感知超时:有进展就不计时,不会误杀装得慢的大软件;超时先优雅关闭再清理进程树,证据照常采集;
- 异常路径也有完整输出:超时、中止、崩溃照样写可解析的结果 JSON,第三方脚本可以直接消费;
- 离线可用:7-Zip 和 OCR 依赖从随包的离线物料自动部署,全程不联网;
- 双入口:GUI 点选上手,CLI 参数语义和输出契约稳定,方便接入脚本。
快速开始
- 解压交付包到可写目录(保留随包依赖物料);
- 双击
AutoTrigger.exe,系统级安装建议右键"以管理员身份运行"; - 首页点"检查环境",缺的 7-Zip / OCR 会从离线包自动部署;
- "新建任务"选文件或文件夹,运行;
- 任务列表看详情:实时日志 + 结果 JSON。
命令行:
.\AutoTrigger.exe --check-prereq --json
.\AutoTrigger.exe --input "D:\安装包\setup.exe" --output "D:\结果\result.json"
.\AutoTrigger.exe --help
几句安全方面的实话
- 遇到 Defender 等安全软件告警,先核对来源和 SHA-256,不要无脑加白名单——工具不保证所有安全产品都不告警;
- UAC 弹窗需要人工确认,工具不会绕过系统安全机制;锁屏和 UAC 安全桌面下不能保证自动化;
- 建议在专用虚拟机/快照环境里跑,别在日常主力机上批量装东西。
最后
项目 MIT 协议,源码、架构说明、结果 JSON 字段说明、图像模板制作教程都在仓库里:
觉得有用的话点个 Star 就是对独立开发者最好的支持;有问题欢迎提 Issue 或 Discussion。