ZAP文件是Windows组策略支持的轻量级部署格式,用于分发无MSI包的绿色软件、便携工具等,通过INI格式描述程序路径与启动命令,适用于快速静默部署场景。
在windows运维中,zap文件是group policy软件安装功能支持的一种轻量级部署方式,用于分发不带msi安装包的第三方程序(如zip解压即用型工具、绿色版软件、exe自解压包等)。它本身不执行安装逻辑,而是通过调用外部命令(如cmd或powershell)完成复制、注册、快捷方式创建等操作,适合快速部署简单客户端工具。
什么是ZAP文件及其适用场景
ZAP(Zero Administration Package)是一种纯文本文件,扩展名为.zap,采用INI格式编写,由[Application]和[Version]两个必需节构成。它不包含安装逻辑,仅描述程序位置、显示名称、版本号及启动命令。适用于以下情况:
- 无MSI包的绿色软件(如Notepad++便携版、PuTTY、curl.exe等)
- 需静默部署但厂商未提供MSI的内部工具
- 测试环境快速推送小工具,无需完整打包流程
- 策略限制禁止使用脚本启动器(如PowerShell ExecutionPolicy严格时,可用cmd兼容方式)
编写ZAP文件的关键结构与注意事项
ZAP文件必须放在网络共享路径(如\serversharepp),且该共享需对目标计算机的计算机账户(或用户账户,取决于部署范围)具有读取权限。基本结构如下:
[Application] ; 必填:显示在“添加或删除程序”中的名称 DisplayName=PuTTY Portable ; 必填:版本号(仅作显示,不参与升级判断) DisplayVersion=0.78 ; 必填:指向本地可执行文件的UNC路径(支持变量如%COMPUTERNAME%) InstallCommand=\servershareputtyputty.exe ; 可选:是否允许用户手动卸载(ZAP不支持真正卸载,设为0更稳妥) Publisher=Simon Tatham ; 可选:简短说明 HelpLink=https://www.chiark.greenend.org.uk/~sgtatham/putty/ [Version] Package=1.0
注意:InstallCommand不能是批处理或PowerShell脚本(GPO会拒绝执行),必须直接指向EXE;若需前置操作(如解压、注册表写入),应将逻辑封装进单个EXE(如用NSIS或AutoIt打包),再让ZAP调用该EXE。
通过组策略部署ZAP文件的实操步骤
1. 将ZAP文件(如putty.zap)与对应程序文件(putty.exe)一同放入网络共享目录,确保路径不含空格或特殊字符
2. 打开“组策略管理控制台”(GPMC),编辑目标OU的GPO
3. 导航至:计算机配置 → 策略 → 软件设置 → 软件安装(或用户配置,依需求选择)
4. 右键“软件安装” → “新建” → “软件包…” → 浏览到\servershareppputty.zap → 选择“已分配”(推荐)或“已发布”
5. 策略应用后,客户端重启或运行gpupdate /force,下次登录(用户部署)或启动(计算机部署)时自动拉取并创建快捷方式(默认在开始菜单)
关键限制:ZAP部署不会写入Windows Installer数据库,因此不会出现在“控制面板→程序和功能”中(仅显示DisplayName),也无法被WSUS或SCCM识别;不支持修复、升级、回滚等高级管理能力。
常见问题与绕过技巧
- 提示“无法验证软件包签名”或“ZAP文件无效”:检查ZAP编码是否为ANSI(非UTF-8);确认[Application]节下DisplayName和InstallCommand存在且非空;共享路径需可被计算机账户访问(建议测试用域计算机账号映射网络驱动器)
- 程序部署后无法运行(报错找不到DLL或路径异常):InstallCommand调用的EXE必须能独立运行;若依赖同目录其他文件,确保ZAP指向的UNC路径下包含全部必要文件(如putty.exe + pscp.exe + .dll)
- 需要开机自启或服务注册:ZAP不支持;改用Startup脚本(计算机配置→策略→Windows设置→脚本→启动)配合robocopy+sc create实现
- 想隐藏桌面快捷方式或自定义安装路径:ZAP不支持;可将InstallCommand指向一个CMD脚本(如install.cmd),脚本内用xcopy复制到%ProgramFiles%并调用mklink创建开始菜单项(需启用“始终等待脚本完成”策略)










