- 适用对象:ManageEngine Endpoint Central 运维人员
- 环境要求:中央控制台已就绪,目标终端已安装并上线 Agent
本文以一次 500 台终端的软件分发为例,按「准备安装包 → 建部署配置 → 看结果与回滚」三步拆解。每步给出控制台菜单路径、可复制命令与验证方法。
说明:不同版本菜单文案略有差异,本文以官方标准流程为准;若你的控制台标签不同,按相同功能定位即可。
执行前检查清单
开始之前逐项确认,任一项不满足都会导致分发失败:
| 检查项 | 确认方法 | 不通过的后果 |
|---|---|---|
| Agent 已部署且在线 | 控制台「范围 → 计算机」状态为"托管/在线" | 离线机收不到策略,显示为未管理 |
| 账号具备软件分发权限 | 角色含「软件分发 → 管理员」 | 无"添加包"/部署入口 |
| 安装包及配套文件齐备 | 本地已有 .exe/.msi,含 .mst/.ini/.iss(如需要) | 部署时文件缺失直接失败 |
| 包来源可达 | 网络共享已赋 Everyone 读取权限 / 或已准备 HTTP 上传 | 目标机拉不到安装文件,大面积失败 |
| 测试机已就绪 | 同配置终端 1 台 | 无法预验证静默参数 |
第一步:准备安装包(Add Package)
1.1 添加包
菜单路径:
软件分发 → 添加包(Add Package)
在添加包窗口填写:
| 字段 | 填写内容 | 说明 |
|---|---|---|
| 包名称 | 含版本号,如 `WPS_12.1.0` | 便于区分新旧版本,回滚时直观 |
| 包类型 | MSIEXEC / EXE / ISS / Command / APPX / MSIX / MSU | 下拉框按此命名选择,不要选"MSI"或"批处理" |
| 文件来源 | 网络共享路径 或 HTTP 路径 | 见 1.2 |
| 安装命令 | 见 1.3 | 决定能否静默完成 |
| 卸载命令 | 见 1.4 | 回滚时调用,建包时一并填 |
1.2 选择包来源(500 台必决策点)
- 网络共享路径(Network Path):适用于同网段内分发。共享文件夹须赋予 Everyone 组读取权限,且所有目标计算机均可访问。优点是不占控制台仓库、带宽走内网。
- HTTP 路径(HTTP Path):适用于分支网点、远程或跨 VPN 的终端。安装文件上传到控制台仓库,由 Agent 经 HTTP 拉取,避免共享权限与内网连通问题。
若目标机访问网络共享不稳定,可在添加包时勾选「复制文件/文件夹到客户端」(Copy file/folder to client machines),让 Agent 先缓存再安装,降低因瞬时断连导致的失败。
1.3 静默参数(关键字段)
Endpoint Central 将"安装命令"中的指令原样交由目标机 Agent 执行。静默安装指不弹界面、无需人工干预的自动安装。
MSI 标准静默安装:
msiexec /i app.msi /qn
生产环境推荐(带日志、禁止自动重启):
msiexec /i app.msi /qn /norestart /l*v C:\temp\install.log
常见 MSI 参数含义:
| 参数 | 作用 |
|---|---|
| /i | 安装 |
| /x | 卸载(后接产品 GUID 或 .msi) |
| /qn | 无界面 |
| /qb! | 仅显示基础进度条,无取消按钮 |
| /norestart | 安装后不自动重启 |
| /l*v <path> | 输出详细日志到指定路径 |
| TRANSFORMS=xxx.mst | 应用变换文件(定制安装项) |
EXE 安装包静默参数(因打包器而异,无统一标准):
| 打包器 | 静默参数 |
|---|---|
| Inno Setup | `setup.exe /S` 或 `/verysilent` |
| NSIS | `setup.exe /S` |
| InstallShield | `setup.exe /silent` 或 `/s`(常配合 `.iss` 应答文件) |
| 微软官方(如 VC++ 运行库) | `setup.exe /quiet /norestart` |
| 7-Zip | `7z.exe /S` |
EXE 没有通用静默参数。参数以软件官方文档为准;文档缺失时,用测试机实测确认。命令行加
/?或-h通常可打印该安装器支持的参数。
EXE 成功返回码异常:部分 EXE 安装器即使成功也返回非 0(如返回 1 或自定义码)。Endpoint Central 以命令返回码判定成败(认 0 和 3010 为成功),这类安装器会被误判为"失败"。对策:在包设置中配置自定义成功代码(Success Codes),把该安装器的成功返回码加入白名单。
1.4 配置卸载命令(用于回滚)
建包时在"卸载命令"字段填写,避免回滚时再临时查找:
:: MSI 按产品 GUID 卸载
msiexec /x {PRODUCT-GUID} /qn /norestart
:: 已知旧版 .msi 也可直接指向上一版本安装包
msiexec /x old_app.msi /qn
产品 GUID 可在测试机注册表 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 下查到,或用 PowerShell 获取:
Get-CimInstance Win32_Product | Where-Object {$_.Name -like "*软件名*"} | Select Name, IdentifyingNumber
Get-WmiObject在新版 PowerShell 中已弃用,建议用Get-CimInstance。
1.5 测试机验证(必须,不可跳过)
- 走完第二步的部署流程,先只选 1 台测试机作为目标,提交部署。
- 远程连接测试机,确认:软件已安装、可正常启动、无残留弹窗。
- 检查安装日志返回码(详细返回码在 Agent 日志中,控制台仅显示成功/失败汇总):
| 返回码 | 含义 | 处理 |
|---|---|---|
| 0 | 成功 | 可推全量 |
| 3010 | 成功,需重启 | 排期重启后生效 |
| 1603 | 权限不足 / 被拦截 | 提权或调整 GPO |
| 1618 | 已有其他安装在进行 | 结束冲突 MSI 进程 |
| 1638 | 版本冲突 | 先卸载旧版本 |
只有测试机返回码为 0(或 3010 且已规划重启),才进入第二步全量。
第二步:建部署配置(Deploy)
注意:第一步只是"定义包",不会自动安装。真正的推送发生在本步骤创建部署配置并提交后。
2.1 进入部署配置
菜单路径:
软件分发 → 安装/卸载软件 → Windows → 计算机配置(Computer Configuration)
点击后进入配置向导,按以下顺序填写。
2.2 命名配置
填写配置名称与描述,如 WPS_12.1.0_全量推送_20260729。命名带版本和日期,便于后续审计与回滚定位。
2.3 定义包设置(选择第一步创建的包)
- 操作类型:选「安装」(回滚时选「卸载」)。
- 包名称:从下拉菜单选择第一步创建的包(如
WPS_12.1.0)。
此步是新手最容易漏的——忘记关联已建好的包,导致部署了空配置。
2.4 安装身份(Install As)
| 选项 | 适用场景 |
|---|---|
| 系统用户(System User) | 默认,权限最高,适用于计算机级软件(装到 Program Files、全用户可用)。推荐多数场景用此项 |
| 以用户身份运行(Run As User) | 用户级软件、需域账号访问网络资源时。建议在凭据管理器配置域管理员凭据 |
选错上下文是 1603 权限失败的常见根因:计算机级软件用了 Run As User 却无足够权限,或反之。
2.5 部署策略(Deployment Policy)——时间窗在这里设
部署策略是一组可复用的策略,包含:
- 部署窗口(Deployment Window):设定允许安装的时间段,如
20:00 – 06:00。 - 重启/关机策略:安装后是否允许自动重启、如何通知用户。
- 跳过用户 / 通知消息:向终端用户弹出的提示文案。
可直接选用系统预置策略,或「创建/修改」自定义策略。建议把"下班后窗口 + 失败重试 + 关冲突进程"固化成一个策略模板反复复用。
2.6 关闭冲突进程(Pre-deployment Activity)
若软件安装需先退出自身进程(如旧版浏览器、杀软自我防护),在**部署前活动(Pre-deployment Activity)**中配置「结束进程(Kill Process)」并列出进程名;部分版本也可在部署策略中设置。
不同版本入口文案不同(“部署前活动 / 前部署操作 / Deployment Policy”),按你控制台的相同功能定位即可。
2.7 定义目标
目标选择维度:
- 按部门 / OU:域环境按组织架构一次圈选,如"销售部 OU"。
- 按自定义集合(Collection):将"Win10 64 位""某 IP 段"存为集合,可复用。
- 按计算机组 / 手动勾选:特殊机型或小范围使用。
500 台建议分批(每批 100 台),降低控制台与网络压力,也便于灰度。
2.8 执行设置(Execution Settings)
| 选项 | 作用 |
|---|---|
| 失败时重试配置(Retrying on failed targets) | 网络抖动、临时占用导致的失败自动重来,建议开启 |
| 每次系统启动时应用 | 目标机下次开机时再尝试 |
| 每次刷新周期应用 | 按 Agent 刷新周期持续尝试,直到成功或超期 |
2.9 计划设置(Scheduler Settings)
- Install After(生效时间):部署在该日期时间之后才开始推。
- Do not apply after(失效时间):超过该时间不再对新目标生效,避免配置无限重试。
若只设了"部署窗口"却选了"立即部署",窗口会被绕过——时间窗只在计划部署下生效。
2.10 提交部署(关键触发动作)
配置完成后,底部有两个按钮,必须点其中一个才会真正下发:
- 部署(Deploy):配置进入 Agent 的 90 分钟刷新周期(或系统启动时、或部署窗口内)生效,不是秒级推送。
- 立即部署(Deploy Immediately):忽略刷新周期,立刻向在线终端推送。
代理刷新周期说明:Endpoint Central Agent 默认约每 90 分钟与控制台同步一次(可在 Agent 设置调整)。提交"部署"后,需等待下一个刷新周期 Agent 才会拉取任务——这是"配完没动静"最常见的原因,不是失败了。想加速可手动触发 Agent 刷新或在目标机服务中重启 Endpoint Central Agent 服务。
第三步:看结果与回滚
3.1 查看进度
菜单路径:
软件分发 → 部署状态(Deployment Status)
面板实时显示每台终端状态:成功 / 失败 / 进行中,以及汇总计数。详细返回码需查看对应终端的 Agent 日志。
3.2 失败机处理
- 在失败列表中点击机器,查看错误码与日志。
- 对照下表定位原因并修复:
| 错误码 | 常见原因 | 修复动作 |
|---|---|---|
| 1603 | 服务账号权限不足、被安全软件拦截、Install As 选错 | 改用 System User;确认部署账号权限;临时放行 |
| 1618 | 同机已有 MSI 安装事务占用 | 结束 `msiexec` 进程后重推 |
| 1638 | 已存在更高/冲突版本 | 先部署卸载旧版,再装新版 |
| 0x643 (1603) | .NET/运行库缺失 | 先分发运行库依赖 |
| 误报失败 | EXE 成功却返回非 0 | 在包设置加自定义成功代码 |
| 超时 | 网络不通或 Agent 离线、共享不可达 | 检查连通性、确认 Agent 在线、核对共享权限 |
- 修复后右键该机器 → 重新部署,无需全量重跑。
3.3 回滚到旧版本
新版本出现兼容性问题时:
软件分发 → 选中新版本包 → 安装/卸载软件 → 计算机配置 → 操作类型选「卸载」→ 部署卸载到目标集合
软件分发 → 选中旧版本包 → 安装/卸载软件 → 计算机配置 → 操作类型选「安装」→ 重新部署到目标集合
前提:第一步建包时已填写卸载命令。建议新旧两个版本包长期保留在控制台,便于随时切换。
常见问题与排查
Q1:500 台同时拉安装包,带宽打满怎么办?
- 分批部署 + 设部署窗口;
- 跨分支用 HTTP 路径上传到控制台仓库,或配置「分发服务器(Distribution Server)」就近下发。
Q2:域外终端收不到策略?
- 这些机器状态为"未管理",需先通过 DMZ 中继或手动安装包部署 Agent,上线后再纳入集合。
Q3:配完部署没反应,是失败了吗?
- 多半是在等 Agent 刷新周期(默认约 90 分钟)。先在「部署状态」确认是否显示"进行中/待执行",而非直接判定失败。
Q4:安装完成但软件打不开?
- 查安装日志返回码;
3010表示需重启,排期统一重启即可。 - 检查是否缺少运行库依赖(见错误码表 0x643)。
Q5:EXE 静默参数怎么确认?
- 查官方文档;无文档时运行
setup.exe /?打印参数,或测试机实测。
操作要点
- 静默参数先试点:1–5 台验证通过(返回码 0)再全量,避免 500 台同时失败。
- Agent 是前提:未上线终端无法接收策略,先完成 Agent 铺装。
- 回滚要留后路:建包即填卸载命令,新旧版本包都保留。
- 分批 + 部署窗口:减轻网络与控制台压力,也便于灰度发现问题。
- 别漏"部署"按钮:定义包≠推送,必须提交 Deploy/Deploy Immediately 才生效;提交后等刷新周期,勿误判。
- Install As 与包来源:计算机级软件用 System User,跨网点用 HTTP 路径,共享路径须 Everyone 读权限。

363

被折叠的 条评论
为什么被折叠?



