SCCM第三方补丁全生命周期自动化:从WSUS订阅到ADR部署实战指南
先说一个和很多SCCM管理员都聊过的痛点每个月的补丁日Windows和Office的更新交给软件更新点SUP和自动部署规则ADR之后基本不用太操心但第三方软件比如Chrome、Zoom、Java、7-Zip、Notepad这些总是让人头大。要么得手工下载安装包要么靠运维同事手动在终端上装装没装、装到什么版本、有没有漏洞心里完全没底。直到我把第三方补丁也纳入SCCM的全生命周期自动化流程这个局面才彻底改观。这篇文章不是讲理论而是把我从目录订阅、软件更新点配置、客户端策略下发到ADR规则、分阶段部署、报表复核这一整套流程里踩过的坑、验证过的配置和最后沉淀下来的运维习惯完整梳理出来。如果你正在用SCCM现在也叫Microsoft Endpoint Configuration Manager后面统一叫SCCM但还没碰第三方补丁或者试过但没跑通这篇文章应该能帮你少走不少弯路。内容偏实战涉及到版本差异的地方我会尽量说明方便你对照自己的环境。既然是聊第三方补丁那我们就先把一个问题说清楚到底为什么要费劲巴拉地搞这个东西。1. 为什么要给第三方补丁建全生命周期流程1.1 第三方软件补丁的“三不管”地带在很多企业里Windows补丁有明确的owner网络设备有专人负责数据库中间件也有DBA。唯独终端上的第三方软件经常处于“三不管”地带。业务部门说“IT帮我装个软件”装完之后这个软件后续的更新、漏洞修复、版本升级往往就没人管了。等到安全团队出漏洞扫描报告发现终端上某个版本的Java或者Chrome存在高危漏洞这时候才着急忙慌地去全网找哪些机器装了、装了哪个版本、能不能远程更新。这就是典型的“被动运维”状态。你每天不是在处理补丁而是在处理补丁缺失带来的应急事件。更麻烦的是第三方软件不像Windows更新那样有一个统一的“补丁源”各家软件商更新渠道不一样有些还特别喜欢改默认安装路径手工维护的话光是梳理软件清单就能耗掉大量时间。1.2 全生命周期自动化的四个核心收益把第三方补丁纳入SCCM做全生命周期管理本质上是把“找补丁、测补丁、发补丁、验证补丁、清旧补丁”这条链路从人工驱动变成规则驱动。我自己的体会是至少能带来四个立竿见影的好处第一补丁来源统一。你可以通过WSUS的第三方补丁目录或者专门的第三方补丁管理工具比如Patch My PC把几十个常用软件的更新统一同步到SCCM控制台里。补丁不再是运维同事U盘里的安装包而是和Windows Update一样有着明确版本号、发布日期的正规更新。第二覆盖面可控。通过ADR规则你可以设定“只要厂商发布了新版本就自动同步、自动下载、自动部署到指定集合”整个过程不需要人盯着。配合分阶段部署还能做到先小规模验证、再全网推送避免某次补丁有问题导致大批终端翻车。第三合规可审计。SCCM内置的合规性报表能清楚告诉你哪台机器缺哪个补丁哪个软件版本还不达标。这比手工统计Excel可靠得多安全审计的时候也拿得出数据。第四存量可清理。全生命周期不只是“装上去”还包括“旧版本怎么处理”。通过WSUS的清理任务和SCCM里的更新过期逻辑可以把不再需要的旧补丁标记过期、取消部署避免更新库越积越臃肿。我在实际项目里经常给客户算一笔账一个1000台终端的环境每个月第三方软件补丁可能要涉及15到20个软件、覆盖几千个终端。如果用人工方式2个运维全职做都未必能保证月底前完成而自动化流程只需要在第一个月花一天时间配置之后每个月只需要花十几分钟看看报表就行。1.3 你可能已经具备的“自动化基础”开始之前先确认一下你手头现有的条件。SCCM做第三方补丁自动化并不需要你从零搭建一套新平台它用的还是我们熟悉的“软件更新点SUP 软件更新组 自动部署规则ADR 部署集合”这条主链路。只要你的环境里已经配好了SUP、同步过Windows更新那么做第三方补丁只是在这个基础上增加“补丁源”和“客户端策略”两个环节。所以这篇文章适合的读者有两类一类是已经用SCCM管Windows更新、想顺手把第三方软件也管起来的人另一类是刚接手SCCM、被领导要求“下个月安全审计前把第三方补丁漏洞堵上”的运维同学。对前者来说大部分内容可以直接落地对后者来说我建议先把官方文档里“配置软件更新”的基础章节过一遍再回来读这篇文章会顺很多。2. 整体方案设计让第三方补丁自己“跑”起来在动手配置之前我想先讲清楚整个方案的设计思路。因为如果你不理解这条链路上每个环节是干什么的后面配置的时候很容易漏掉某个关键点出问题了也不知道从哪里排查。2.1 第三方补丁的几条“进货渠道”SCCM同步第三方补丁说白了就是回答一个问题这些更新包从哪来我梳理了一下目前主流的有三种方式。第一种是使用补丁厂商自带的更新目录。很多软件厂商或第三方服务商会维护一个可供WSUS订阅的更新目录里面包含一系列已签名的更新元数据。你在WSUS里订阅这个目录后SCCM通过SUP就能把这些更新同步进控制台。典型例子包括HP、Dell、联想等硬件厂商的驱动更新目录以及一些软件聚合商提供的目录。这种方式优点是免费、配置简单缺点是目录覆盖的软件有限有些目录还不支持私有证书签名。第二种是使用专门的第三方补丁管理工具。比如Patch My PC它本质上是给SCCM开了一路“直通车”发布工具会把你指定的软件最新版比如Chrome、Zoom、Adobe Reader、Java等直接打成一个又一个标准更新发布到你的WSUS/SCCM里然后你就可以像处理微软更新一样处理它们了。这种方式覆盖面广、自动化程度高也是我目前生产环境里用得最多的方式。缺点是工具本身是付费的但和人工成本比这笔钱花得值。第三种是纯手工打包发布。就是运维自己下载软件安装包封装成SCCM可识别的“更新”再手动发布到更新库里。这种方式适合那些补丁目录覆盖不到、工具也不支持的极少数软件。我不建议把这当成主力方案因为每次软件更新都要手动做一遍维护成本太高。既然本文重点讲“全生命周期自动化”那我下面的步骤会同时覆盖第一种和第二种方式里最关键的部分目录订阅、更新同步、分类过滤、客户端启用、ADR部署这些动作是共通的。具体你用的是哪条渠道只是前面“进货”这一步不一样而已。2.2 一条链路串起来的五个环节整个方案从设计视角看其实就是一条流水线“补丁源” - “SCCM更新库” - “客户端识别与扫描” - “ADR自动部署” - “合规收集与清理”。补丁源环节解决“补丁从哪来”就是前一节说的渠道选择。SCCM更新库环节负责“过滤与存储”也就是通过SUP把更新同步到数据库里并通过产品、分类、语言等条件控制同步范围。客户端识别与扫描环节解决的是“终端能不能认得这些补丁”这需要客户端启用第三方更新策略并信任WSUS签名证书。ADR自动部署环节是我们把自动化落地的主战场通过规则把最新补丁自动拉进部署组并推送出去。最后的合规收集与清理环节则是让整条链路形成闭环——收集结果、生成报表、清理旧数据。我画了一张纯文字的链路图方便你对照后面的配置步骤补丁源第三方目录/工具 - WSUS/SUP同步SCCM更新库 - 客户端策略启用第三方更新证书信任 - ADR规则自动更新组自动部署 - 集合分阶段部署Pilot/生产 - 合规报表与旧补丁清理2.3 为什么选择ADR而不是手动部署很多人在第一次接触第三方补丁时习惯性的做法是同步进来之后手动选几个更新右键“部署”。这个动作偶尔用一两次可以但要做到“全生命周期自动化”必须靠ADR。原因是ADR能帮你完成两件手工做很麻烦的事一是按周期自动同步和更新“软件更新组”比如每个月10号自动把过去30天里发布的所有第三方更新新建一个更新组二是自动把这个更新组部署到固定的集合。这两件事一旦配好后面每个月你只需要在控制台里看一眼“ADR运行是否成功、有没有新的合规性警报”剩下的环节真的不用再操心了。ADR还可以配置多个阶段。比如我生产环境里就建了两条ADR一条部署到“SCCM-3rdParty-Pilot”集合用于小范围验证另一条部署到“SCCM-3rdParty-Production”集合用于向全部终端推送。两条ADR的更新组可以共用但部署计划和集合不同这样就实现了“分阶段自动化”。3. 实操配置让补丁从“云上”落到终端下面进入硬核的配置环节。我会按实际操作的先后顺序来写尽量把每一步的入口、选项、注意事项都讲清楚。你在自己的环境里操作时可以一边看一边对照。3.1 第一步在WSUS上订阅第三方补丁目录如果你用的是付费工具如Patch My PC这一部分工具会帮你自动完成你基本不用手工在WSUS控制台里操作。但如果你是首次配置或者准备用免费的厂商目录那就得自己动手。在WSUS服务器上打开WSUS控制台依次找到“更新服务” - 你的服务器 - “选项” - “产品与分类”切换到“分类”页签选中“同步更新目录中的更新”这类选项不同版本叫法略有差异再点击“其他更新目录”或“更新目录”按钮。在这里可以添加厂商提供的目录订阅地址。添加目录后WSUS会去下载目录元数据并在“产品与分类”里自动增加对应的产品分类。比如订阅了某个硬件厂商的目录分类里就会多出该厂商的驱动产品。注意WSUS本身只负责同步“元数据”真正的补丁内容包还是由SCCM的DP分发点在部署时从微软更新或源站下载。如果是用Patch My PC这类工具你只需要在Publisher工具里勾选需要发布的软件产品设置好发布选项工具会自动把这些更新发布到WSUS/SCCM的库里你甚至不需要去WSUS控制台操作。这一点在后面的常见问题里我也会提到。3.2 第二步配置SUP把第三方更新同步进SCCMSUP软件更新点是SCCM里同步更新的核心组件。如果你已经配过Windows更新那么这里其实就两个关键动作“同步计划”和“更新分类/产品过滤”。在SCCM控制台里进入“管理” - “站点配置” - “服务器和站点系统角色”找到装有SUP角色的服务器打开属性。在“同步设置”里把“按计划同步”勾上我用的是每天凌晨2点同步一次。这样当天补丁发布后最晚第二天早上SCCM库里就会有数据。在“分类”和“产品”页签里你需要按实际情况勾选。如果你用目录订阅分类里会出现对应的第三方分类勾上如果你用Patch My PC它发布过来的更新一般会归类到具体的软件产品你可以直接按产品名勾选也可以把“所有软件”都勾上再靠ADR规则过滤。这里我建议在SUP产品里不要贪多只勾选你真正需要管理的软件不然每次同步的数据量会很大控制台操作也会变卡。我在一个测试环境里吃过教训把几百个产品全勾了结果首次同步跑了将近一整天。同步完成后回到“软件库” - “软件更新” - “所有软件更新”搜索刚才同步进来的第三方补丁。你可以按“名称”搜比如输入“Chrome”或“Zoom”或者按“供应商”筛选。确认能看到更新了再进入下一步。3.3 第三步客户端策略让终端“认”这些补丁这一步是很多新手最容易漏掉的。你在服务器端同步了一堆第三方更新但客户端如果不启用第三方更新策略扫描的时候根本不会把本地已装的软件版本和SCCM里的更新做比对所以部署也就无从谈起。在SCCM控制台里进入“管理” - “客户端设置”新建一个自定义客户端设置不要直接改默认客户端设置然后找到“计算机代理”分类在里面把“启用第三方软件更新”设为“是”。再把这份策略部署到你需要管理的目标集合上。同时客户端还需要信任WSUS签名证书。如果你用的是目录订阅或Patch My PC客户端会在扫描时自动检测并信任WSUS发布的证书——前提是客户端策略允许。如果客户端扫描后报“更新未找到”或者扫描日志里出现证书相关报错大概率就是这个信任链断了。后面第五章我会给排查思路。客户端策略还有一点要注意扫描间隔。默认的“更新扫描计划”可能是一周一次对第三方补丁来说太久了。我生产环境里把“软件更新扫描计划”改成了每天触发一次频率太高会增加服务器压力一天一次对中小规模环境基本够用。3.4 第四步用ADR把补丁“自动装上去”到了这里才算是真正进入“自动化”的核心。ADR的价值前面已经讲过操作上也不复杂但有几个细节直接决定你能不能跑起来。在SCCM控制台“软件库” - “软件更新” - “自动部署规则”里点击“创建自动部署规则”。先起个名字比如“3rdParty - 每周更新 - Pilot”然后配置“部署设置”常规页签里把“模板”选为或新建一个“软件更新”模板即可“部署集合”选择目标集合比如Pilot集合在“部署计划”里我习惯设置为相对当前日期2天后开始部署。为什么不是马上因为ADR创建后会立即运行一次如果创建完马上就部署很多客户端还没扫描到更新会把部署判定为“不需要”后面再想补拉就麻烦。间隔1-2天给客户端一个扫描周期能提高部署成功率。在“软件更新规则”页签里是ADR的核心筛选条件。我常用的筛选条件是日期范围“最近30天”更新分类选“安全更新”或者“所有更新”根据自己的需求供应商选对应的第三方厂商或工具发布供应商产品选具体软件。条件用“或”还是“和”要仔细想清楚。我一般用“所有条件都满足”然后只保留“发布日期在最近30天”“产品包含Chrome”这种具体规则而不是一把梭把所有第三方更新都圈进来。规则配置完成后别忘了在“评估计划”里勾选“按计划运行”我设置为每周日凌晨2点。这样每周日ADR会自动把过去一周发布的最新第三方补丁拉进更新组并部署到目标集合。3.5 第五步分阶段部署区分Pilot和生产分阶段部署不是SCCM强制的但在我看来是第三方补丁自动化里“必须要有”的一环。原因很简单Windows补丁翻车你还能怪微软第三方补丁的提供方水平参差不齐尤其是一些小软件厂商一个版本更新后出现兼容性问题的概率比微软高得多。如果所有终端同一时间更新一旦出问题就是全网受影响。我的做法是建两个集合一个“SCCM-3rdParty-Pilot”放少量验证虚拟机或IT部门自己的机器另一个“SCCM-3rdParty-Production”放所有业务终端。然后建两条ADRPilot的ADR在更新同步后立刻部署Production的ADR设置5到7天的延迟等Pilot那批机器验证没问题再说。如果Pilot这批机器里出现了安装失败或者软件崩溃的报错我还有时间在Production部署生效前把更新组里的问题更新排除掉。SCCM本身还有一个“分阶段部署”向导它能把“验证”到“生产”两步串进同一个部署流程里但在ADR的场景下我更推荐上面这种“双ADR”的方式因为它们的更新组和部署集合是解耦的灵活度更高。4. 细节与避坑让流程真正稳定4.1 补丁包下载与分发警惕DP的压力ADR创建好之后更新会自动进入“部署包”下载流程。SCCM会从更新源站下载更新内容再把内容分发到分发点。如果你的环境比较大客户端很多要注意“分发点”的带宽和磁盘IO。我见过一些客户的DP同时承担着OSD镜像分发和第三方补丁分发结果某个月的补丁量一大DP磁盘IO直接跑满导致双方都被拖慢。建议给第三方补丁单独建一个部署包。这样的话即使某个月的补丁更新出了幺蛾子你只需要单独删掉这一个部署包就行不影响Windows更新的分发。同时部署包的位置最好放在SSD上或者至少保证磁盘剩余空间足够大不然下载到一半磁盘满了很被动。4.2 补丁分类与过期策略库别搞太胖第三方补丁的发布频率尤其是Chrome、Zoom这类软件几乎是每周甚至每天都有新版本。如果每次同步都全量收进来你的SCCM更新库会快速增长搜索更新、生成报表都会变慢。好在SCCM的“软件更新点组件属性”里有一个“同步后取消过期更新”的选项建议勾上。WSUS侧也会自动把被取代的更新标记为“过期”或“不需要”。这样当Chrome发布新版本后旧版本更新会自动被系统“取代”在后续ADR运行时就不会再被拉进新的更新组。我自己每年还会做一次手动清理进入WSUS控制台运行“服务器清理向导”把“未使用的更新”和“过期的更新”清理一遍。这个动作不影响已经部署的内容但能让数据库保持清爽。4.3 合规报表自动化闭环的最后一块拼图如果你只看“ADR运行成功”就认为问题解决了那你其实还没形成闭环。真正的闭环是部署之后要知道全网有多少终端还没装上、多少终端装失败了、哪些软件迟迟达不到预期覆盖率。SCCM内置报表里“软件更新” - “合规 1 - 特定计算机的软件更新合规性”和“合规 5 - 特定软件更新的合规性”这两张表是我最常用的。运行报表指定更新组或软件更新名称就能看到每个集合的合规情况。如果你有Power BI或者SQL能力也可以直接查v_UpdateComplianceStatus视图做更加定制化的看板。我每周一早上会做三件事看ADR运行状态、看Pilot集合合规报表、看Production集合合规报表。合规率低于预期时优先查是扫描问题还是安装问题有时候是因为某台机器关机了没扫到有时候是安装包被安全软件拦截了。这些才是自动化之后真正需要人工介入的地方。5. 常见问题与排查技巧实录这部分我单独拉出来写因为第三方补丁自动化的坑实在太多了。我挑几个高频的按“现象 - 排查 - 解决”的方式写建议收藏起来对照着用。5.1 问题一同步失败更新库好几天没动静现象SCCM控制台里“所有软件更新”很久没有新增记录同步作业显示失败错误代码可能是0x80244010、0x80244019或0x80244017。排查先看WSUS是否正常同步。在WSUS控制台里的“同步”选项卡能看到同步历史和错误详情。0x80244019往往是磁盘空间不足或者数据库连接异常导致的登录WSUS服务器检查磁盘空间和SQL服务状态。如果WSUS没事再看SCCM的同步机制打开SCCM服务器上的wsyncmgr.log文件这是SUP同步最直接的日志。解决磁盘空间不足就清理WSUS库运行清理向导或者扩展空间数据库问题就重启WSUS SQL服务并重新触发同步。记住SCCM的SUP同步和WSUS同步是上下游关系WSUS都没同步下来SCCM库里自然不会有数据。5.2 问题二客户端策略已下发但终端不识别第三方更新现象ADR显示部署成功但合规报表里始终有大量终端显示“不适用”或者“未扫描到”在终端上看更新扫描日志WindowsUpdate.log发现根本没有第三方更新条目。排查这一步十有八九出在客户端策略或证书信任上。在终端上打开Configuration Manager控制面板切到“操作”页签触发“软件更新扫描循环”然后去C:\Windows\WindowsUpdate.log里搜“Third party”或者“Catalog”关键词。如果搜不到说明客户端根本没有启用第三方更新扫描。检查客户端策略是否真的应用到了这台机器以及策略里的“启用第三方软件更新”是否为“是”。解决你还可以打开证书管理单元certmgr.msc展开“受信任的发布者”确认里面有没有WSUS的签名证书。如果没有说明证书信任链断了。通常是因为客户端策略没有下发完整或者WSUS签名证书被某种安全策略自动清理了。重新应用策略后手动触发一次扫描即可。5.3 问题三补丁下载到一半老是失败现象某个更新在控制台里显示“内容下载失败”分发点日志里报0x80070070磁盘空间不足或者下载进度一直为0。排查先确认SCCM部署包所在的磁盘空间是否充足。第三方补丁内容包有些很大比如Adobe全家桶、Office加装件动辄几百MB如果DP之前已经塞满了OSD镜像很容易爆盘。其次看DistributionManager.log能直接看到下载线程报什么错误。解决换磁盘或清理部署包目录给第三方补丁单独规划一块盘符别和其他内容混在一起下载失败的重试不用手动干预SCCM会自动重试但等待时间较长你也可以直接在部署包属性里手动“重新分发内容”来加速。5.4 问题四ADR规则跑完但更新组里没几条更新现象ADR按计划运行成功了但生成的软件更新组是空的或者只有几个更新。排查检查ADR的“软件更新规则”里的筛选条件是不是太严了。比如你同时选了“指定产品为Chrome”和“指定更新分类为安全更新”而Chrome的更新分类可能是“更新”而不是“安全更新”那筛选结果就会被过滤掉。再检查日期范围如果设了“最近7天”而某个补丁在同步入库时因为延迟被算到7天外也会被过滤掉。解决放宽筛选条件分类选择“所有更新”或者把日期范围拉到30天跑一次试试。如果更新组有数据了再逐步把条件收紧。经验法则先在“创建ADR向导”的“软件更新规则”页签里直接点“预览”看清楚预览结果符不符合预期再保存。5.5 问题五合规率长期卡在95%剩下5%怎么都上不去现象Pilot集合合规率100%但Production集合一直有少量机器不合规安装状态显示“安装失败”或“等待重启”。排查点开具体的不合规机器查看“软件更新部署状态”详细信息。常见原因是终端处于关机/离线段、用户没登录导致安装窗口没触发、第三方软件被用户手动卸载后更新不适合、或者安装包被终端安全软件拦截。解决针对关机/离线可以安排维护窗口并配合唤醒功能针对安装失败去终端看SCCM的UpdatesDeployment.log和“Software Center”里的错误码最常见的0x87d00215表示“无法找到更新”说明客户端扫描状态可能已经过期安全软件拦截的需要把SCCM的安装进程加入白名单。整体来说100%合规在现实环境很难达到控制在98%以上并确保剩余的机器都有明确标签说明原因就差不多了。6. 扩展与心得自动化之后的运维方式变化6.1 从“补丁日”到“补丁周”配置完这套流程后我最大的感受是运维节奏变了。以前每月补丁日那天像打仗现在每周都很平稳。第三方补丁因为发布频繁我反而更推荐“每周一小步”的节奏每周日ADR自动打包上周补丁周一早上我花十分钟看报表周二Pilot确认没问题周三Production部署生效周五再看一眼最终合规率。这样全年下来第三方软件的漏洞暴露时间窗口被压得很短安全性反而比过去“每月集中打一次”更好。6.2 和ITIL流程、安全团队的协作自动化落地后另一个明显变化是和安全团队、变更管理团队打交道时更有底气。以前说“这个补丁我们下周推”对方总要追问“覆盖多少台、失败多少台、什么时候能完成”现在直接甩一张SCCM报表截图数据清清楚楚。变更窗口也不再需要频繁申请紧急变更因为每周的自动化推送本身就变成了常态化变更流程。建议你把ADR的执行时间、部署阶段、回滚方式都写进运维手册这对接ITIL审计很有帮助。6.3 后续还能怎么玩把驱动更新、配置基线也拉进来如果你已经跑通了第三方补丁的自动化链路你会发现这一套东西的可扩展性很强。比如硬件厂商的驱动和固件更新也可以走同样的目录订阅和ADR流程把原来手工给新装机装驱动的工作也慢慢省掉。再比如配合SCCM的配置基线Configuration Baseline你可以自定义检测脚本在部署前自动判断某个软件是否满足前置条件或者部署后验证软件是否真的能正常启动。这些都是“全生命周期”的自然延伸本质上你已经不是在管“补丁”而是在管“终端软件的整个状态”。我对这套方案的最大心得其实就一句不要把自动化想成一个大工程它就是把原来每个月的重复劳动拆解成“目录订阅、同步、规则、部署、报表”这五个小环节然后用规则把前后环节串起来。你在第一个月多花的时间后面每个月都会连本带利还给你。如果你还没开始今天就可以先从熟悉WSUS控制台开始把第一步迈出去。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →