ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

SCCM 2012运维手册:客户端管理、软件分发与补丁部署

2026/9/17 16:58:10 拓冰建站 浏览量
SCCM 2012运维手册:客户端管理、软件分发与补丁部署 简介SCCM 2012运维文档是一份面向微软系统中心配置管理器System Center Configuration Manager简称SCCM的运维实操笔记适合企业IT管理员、运维工程师及初学者用于环境规划、部署检查与功能验证。文档从环境介绍、部署需求含操作系统、SQL Server及.NET版本要求入手逐步说明控制台安装并分别演示客户端发现、资产管理、应用程序分发、软件更新补丁管理和远程控制等核心功能的原理、类型与配置方法其中客户端发现涵盖心跳机制、自动发现、手动发现和DNS发现资产管理覆盖硬件资产与软件资产软件更新则包含补丁管理的计划与报告整体能够帮助读者建立完整的SCCM 2012运维知识框架。压缩包仅包含1个Word文档大小约5.66MB结构清晰、章节独立并附有目录与修订记录便于跟踪和查阅。目前已有713人学习下载适合在实际部署SCCM 2012或整理运维方案时参考查阅。1. 是时候用 SCCM 2012 运维文档解决设备管理的混乱局面了当企业里上百台 Windows 客户端散落在多个网段手动装软件、打补丁、盘点资产运维工程师的夜晚基本就没了。SCCM 2012System Center Configuration Manager 2012就是为了解决这类问题而存在的它把客户端发现、资产管理、应用分发、软件更新和远程控制整合到一个管理控制台里。这份运维文档记录了从环境搭建到功能测试的完整过程包括主站点与 SQL 服务器的部署规划、AD 林发现、边界组配置、客户端请求安装以及后续的软件分发和补丁管理。对桌面运维、系统运维和 it 运维效率提升需求明确的人照着操作就能把一个可用的 SCCM 2012 基础环境跑起来。2. 部署需求与 SQL 选型给 SCCM 2012 搭配合理的运行环境2.1 主站点与 SQL 服务器的角色划分在原文的规划里SCCM 2012 主站点和 WSUS 放在同一台 Windows Server 2012 R2 上IP 为 192.168.1.132SQL Server 单独放在另一台服务器上IP 为 192.168.1.133。这种结构在中小型环境中非常常见主站点承担管理、分发点、软件更新点等角色SQL 数据库独立部署避免站点服务器因数据库压力而过载。我一般在生产环境里还会把 WSUS 角色也单独拆出去但原文档这种一台站点一台 SQL 的两台机器方案对于并发不高、客户端规模在几百台以内的场景足够稳定。需要说明的是SCCM 2012 的站点数据库名称会在安装时指定默认实例或命名实例都可以但务必备好实例名和端口后续管理中心站点或辅助站点连接时都要用到。客户端数量如果在 500 台以下主站点服务器给 8GB 内存、100GB 磁盘SQL 服务器给 16GB 内存和足够的数据库文件空间是我习惯的起步配置。2.2 操作系统与 SQL 版本兼容性矩阵原文给出了一份兼容性表格这里整理成更直观的版本矩阵。对于主站点和中心站点Windows XP 之后的桌面系统和 Windows Server 2008 之后的服务器系统都能作为客户端被管理而管理服务器本身则建议用 Windows Server 2008 R2 或更新版本。客户端操作系统架构是否受支持Windows XP Professional SP3x86是Windows Vista Business/Enterprise/Ultimate SP2x86, x64是Windows 7 Professional/Enterprise/Ultimate无SP或SP1x86, x64是Windows Server 2008 Standard/Enterprise/Datacenter SP2x86, x64是Windows Server 2008 R2 Standard/Enterprise/Datacenter无SP或SP1x64是SQL 版本部分原文提到 SQL Server 2008 SP2 with Cumulative Update 7 和 SQL Server 2008 R2 with SP1 and Cumulative Update 4 可以用于管理中心网站和主站点而 SQL Server Express 2008 R2 只支持中心站点。这意味着如果你的环境不复杂中心站点可以用 Express 起步但主站点不要用 Express否则一些功能会受限。SQL 实例的排序规则建议保持默认的SQL_Latin1_General_CP1_CI_AS不要随意改成别的否则 SCCM 站点数据库创建阶段会报排序规则不兼容。提示文档里出现的“Windows Server 20012 R2”明显是笔误实际部署时按 Windows Server 2012 R2 准备即可。SQL 的累积更新补丁在安装前要提前打好否则配置管理器安装向导自带的先决条件检查会直接拦截。2.3 安装控制台前的准备与先决条件检查安装 SCCM 2012 控制台之前除了操作系统和 SQL 版本还有一些组件必须先就位。原文档的安装流程从安装界面开始但通常在向导弹出之前你需要在服务器上启用 IIS、BITS、远程差分压缩等角色功能。下面是我常用的 PowerShell 命令负责把 IIS 基础功能和 ASP.NET 4.5 打开Install-WindowsFeature Web-Server, Web-Windows-Auth, Web-Asp-Net45, BITS这段命令先安装 IIS 核心服务再启用 Windows 身份验证和 ASP.NET 4.5 支持最后安装后台智能传输服务 BITS。SCCM 2012 的管理点在向客户端分发内容时会用到 BITSIIS 的 Windows 身份验证则用于报表和站点通信缺一个都会在后续配置里报错。安装界面里建议选择“安装 Configuration Manager 主站点”。向导会要求指定站点代码和站点名称站点代码是后续客户端安装参数里的关键标识例如S01。控制台安装完成后先不要立刻操作功能测试先到“管理”工作区检查“站点系统角色”确认站点状态是否显示为“正常”。这一步经常被跳过结果客户端发现配置做完了才发现站点系统还没完全注册。如果先决条件检查有红色错误优先解决缺少的 Windows 功能而不是强行继续安装否则后期站点组件安装会一直卡住。3. 客户端发现与边界组让 SCCM 2012 主动找到终端设备3.1 AD 林发现与边界组的配置客户端发现是 SCCM 2012 一切管理动作的起点。原文档在“管理→发现方法”里启用 AD 林发现右键属性后勾选“启用 AD 林发现”同时勾选“发现 AD 站点便捷时创建这些边界”。这一步的作用是让 SCCM 去读取 Active Directory 林中的站点子网信息并自动生成 IP 范围边界。需要理解的是边界组并不是一组 IP而是一个逻辑容器。原文档后续创建边界组然后“添加”边界把前面自动发现的边界或手动创建的 IP 子网放进一个组里。边界组决定客户端会从哪个站点服务器和内容分发点获取策略与内容。如果边界组为空客户端虽然能被发现但无法选择正确的管理点站点分配就会失败。我一般在创建边界组时会遵循一个原则按办公楼的网段或物理位置划分不要在同一个边界组里混入跨地域的子网。否则客户端可能被分配到距离很远的内容分发点应用分发时传输效率会大打折扣。不同发现方法可以结合起来发现方法发现的资源典型用途AD 林发现站点、子网、域自动创建边界AD 系统发现计算机账号发现域内客户端设备网络发现IP 子网内的设备非域环境或跨网段补充3.2 客户端请求安装的账号与权限原文档在“客户端请求安装属性”里添加了一个域管理员账号。这个账号的作用是向目标客户端发起安装连接请求因此必须具备目标机器上的本地管理员权限。在域环境中最省事的做法是使用域管理员但如果追求最小权限可以单独建一个服务账号并加入每台客户端的本地管理员组。添加账号时原文档的操作是“点击新账户→输入有管理员权限的账号→点击检查姓名→输入域管理员密码→确定”。这里有一个经常犯的错如果账号密码填错或权限不足客户端安装不会立即报错过上一段时间后在“监控”里看到客户端状态始终是“尚未安装”。我一般会在添加账号后先右键一台测试机手动安装确认能成功后再批量“客户端请求安装”避免把所有设备都卷入一次失败的安装。3.3 验证发现结果与安装客户端原文档在“设备”节点看到了刷新出来的客户端然后右键选择“安装客户端”向导中勾选“从指定站点安装客户端软件”下一步即可。这个操作会自动调用客户端请求安装机制把 ccmsetup.exe 推到目标机器上执行。批量安装时建议先在“客户端推送安装”属性里把站点代码和安装参数填好这样后续右键安装时就不需要重复选择。这里给一个我在排错时常用的命令直接在客户端本地上验证客户端服务是否起来Get-Service -Name CcmExec | Select-Object Name, Status如果返回的 Status 不是 Running可以手动执行客户端安装程序ccmsetup.exe /MP:MP01 /SMSSITECODES01参数中/MP:指定管理点名称/SMSSITECODE指定站点代码路径需要与管理点上的实际名称和安装时设置的站点代码一致。如果仍然装不上去C:\Windows\CCM\Logs\ClientMSI.log和ccmsetup.log里看失败原因这两个日志是客户端发现与安装问题的最直接依据。ccmsetup.log里如果出现There is no site server to install the client from说明客户端没有找到可以下载安装源的管理点先检查边界组和站点分配设置。4. 资产管理与软件计量把时间花在能看见数据的运维上4.1 资产智能与软件计量的作用资产管理的核心不只是记录硬件配置而是让管理员能回答“哪台机器上装了什么软件、谁在用、用了多久”。原文档里的资产智能功能允许 IT 管理员定义配置标准并跟踪所有资产同时通过计量报告来判断软件许可是否超量。软件计量数据会从客户端收集回来管理员可以据此判断组织内到底部署了多少份特定软件副本以及是否需要追加采购许可。这里要区分两个容易混淆的概念资产智能Asset Intelligence收集的是软件和硬件清单软件计量Software Metering跟踪的是程序执行情况。前者回答“有没有”后者回答“用不用”。比如你在资产智能里看到 Photoshop 装了 200 台机器但软件计量报告显示只有 20 台机器每天在跑那许可证采购就可以按活跃用户数去谈而不是按机器数。4.2 配置站点系统角色原文档在“管理→站点”里选择站点然后添加站点系统角色。在实际部署中要让资产智能和计量报表真正工作起来至少需要添加两个角色资产智能同步点Asset Intelligence Synchronization Point和报表服务点Reporting Services Point。添加资产智能同步点时向导会要求指定一个在线同步账户SCCM 会通过这个账户向微软的资产智能服务同步目录数据。报表服务点则需要指定 SQL Server Reporting ServicesSSRS实例所以在这之前你需要在 SQL 服务器上装好 SSRS。如果没有 SSRS后面创建报表时会提示“报表服务器不可用”这个问题经常在测试环境里出现。4.2.1 报表服务点的快速验证报表服务点装完后可以在浏览器里打开 SSRS 门户检查默认地址一般是http://192.168.1.133/Reports如果打开报错先确认 SQL Server Reporting Services 服务是否启动再确认 SCCM 站点服务器到 SQL 服务器的防火墙端口 80 或 443 开放。这类问题在跨服务器部署 SSRS 时非常常见不用急着重装 SCCM。站点系统角色列表中如果报表服务点的“状态”列显示为红色错误还可以到C:\Program Files\Microsoft Configuration Manager\Logs\smsdpprov.log查看详细的角色安装日志。4.3 用集合、查询和报表查看资产数据资产清单数据从客户端收集后存储在站点数据库里。在 SCCM 控制台里“监视→查询”可以直接运行内置查询我比较常用的是用 SQL 视图去查软件清单特别是需要统计软件数量的时候。下面是一个简单的 SQL 查询SELECT DISTINCT ProductName0 AS 软件名, COUNT(*) AS 机器数 FROM v_GS_INSTALLED_SOFTWARE GROUP BY ProductName0 ORDER BY 机器数 DESC;这段查询从v_GS_INSTALLED_SOFTWARE视图读取软件名称和机器数量DISTINCT避免同一台机器上多个相同产品记录重复统计。实际生产环境里软件清单可能因为客户端版本差异出现大小写不同你可以把ProductName0再包一层UPPER()来清洗但那样会降低索引利用效率所以要不要做取决于数据集规模。也可以使用 SCCM 内置报表来快速查看数据常见的有这几张报表名称用途特定计算机的软件产品列表查看单台机器的软件清单软件使用量汇总统计软件计量和执行时间硬件清单摘要查看内存、磁盘、CPU 等硬件资产另外建议在“资产和符合性→设备集合”里创建按操作系统版本组合的集合这样后续部署应用和补丁时就能做到按组分批而不是对所有机器一刀切。资产清单默认在客户端上每 7 天收集一次若你刚部署完客户端急着看数据可以右键客户端设备选择“客户端通知→下载计算机策略”再在客户端控制面板的“配置管理器”里触发“硬件清单循环”能缩短等待时间。5. 应用分发与补丁管理SCCM 2012 里的两件硬核工作5.1 应用程序分发部署流程应用程序分发是 SCCM 2012 替代传统包分发的重要改进。原文档没有详细展开操作步骤这里按常见做法补全一遍。第一步是在“软件库→应用程序管理→应用程序”里右键“创建应用程序”如果手里是安装文件可以直接选择“自动从安装文件中检测应用程序信息”第二种是手动指定安装程序命令例如setup.exe /quiet。创建应用后需要指定部署类型部署类型中最重要的两个属性是“部署行为”和“检测方法”。部署行为决定客户端是仅安装还是需要卸载后重装检测方法则用 GUID 或文件版本来判断该应用是否已经存在。别小看检测方法如果检测不到已安装状态SCCM 会反复尝试安装同一应用用户设备上会不断弹出安装窗口。完成应用创建后需要把应用内容分发到分发点Distribution Point。在“应用程序”右键选择“分发内容”向导里选择分发点或分发点组。分发点角色通常装在主站点服务器上但客户端多时可以加装独立的服务器。分发完成后再右键“部署”选择目标设备集合设置可用时间或安装截止时间。部署选项可以参考下表部署选项作用可用时间用户可以从软件中心手动安装截止时间到达后强制安装可配置重启行为维护窗口限制安装只发生在允许的时间段部署行为决定仅安装、卸载重装或排除5.2 软件更新点与 WSUS 集成补丁管理依赖 WSUSWindows Server Update Services。原环境里 SCCM 主站点同时承载了 WSUS 角色这是标准做法SCCM 的软件更新点角色会调用 WSUS 来同步补丁元数据。在“管理→站点系统角色”里添加“软件更新点”向导会要求指定 WSUS 服务器名和端口默认端口 8530HTTP或 8531HTTPS。安装完软件更新点后不需要在 WSUS 控制台里同步SCCM 可以直接在“软件库→软件更新→所有软件更新”里右键“同步软件更新”。但 WSUS 服务的连接配置很关键我通常会在 WSUS 服务器上确认下面服务正常运行Get-Service -Name WsusService, WsusPool | Select-Object Name, StatusWsusService是 WSUS 的核心服务WsusPool是 IIS 中 WSUS 应用程序池。如果其中一个不是 Running补丁同步会在 SCCM 控制台显示同步错误但错误日志只给一个笼统的“WSUS 服务器连接失败”很难定位所以先查这两个服务最省时间。同步时把“分类”和“产品”先缩小范围不要一次全选否则同步时间会特别长而且数据库占用明显增加。5.3 部署软件更新组补丁同步完成后在“所有软件更新”里筛选出需要的更新右键添加到新的软件更新组。建议按月创建更新组比如“2025年3月安全更新”这样报告和回滚都能对上。创建组后右键部署选择目标集合设置“截止时间”截止时间一过客户端会在维护窗口内自动安装补丁。对关键服务器我会把软件更新部署设置为“没有维护窗口时不允许安装”避免业务高峰被重启打断。客户端日志方面补丁安装的状态可以从C:\Windows\CCM\Logs\UpdatesDeployment.log里看到如果某台机器一直没有安装动作可以先看这个日志里有没有Timeout或EnumerateUpdates字段再配合WindowsUpdate.log判断系统更新服务是否正常。命令行触发补丁扫描可以用下面的方式强制客户端向管理点报告补丁状态WMIC /namespace:\\root\CCM path SMS_Client CALL TriggerSchedule {00000000-0000-0000-0000-000000000113}这个 WMI 方法调用的是软件更新部署评估循环00000000-0000-0000-0000-000000000113是标准的补丁扫描任务 ID。注意WMIC在新版 Windows 可能被移除但 Windows Server 2012 R2 上还能用如果后面迁移到更高版本系统可以用 PowerShell 的Invoke-WmiMethod替代。6. 远程控制与日常运维把 SCCM 2012 用成效率工具6.1 配置远程控制原文的最后一节是“功能测试远程控制”但没有记录步骤。在 SCCM 2012 里远程控制默认没有完全打开需要在“管理→客户端设置”里找到默认客户端设置右键属性在“远程工具”部分启用“启用远程控制”并允许“完全控制”。客户端策略更新后可以右键设备选择“启动远程控制”会打开一个类似 RDP 的窗口。如果客户端上出现灰色不可点击先检查客户端的C:\Windows\CCM\Logs\RemoteControl.log里面会记录权限验证失败或策略未下发的具体原因。远程控制依赖“Windows 远程协助”相关服务一些精简版系统会禁用服务我用下面的命令检查最核心的服务Get-Service -Name CcmExec, WinRM | Select-Object Name, StatusCcmExec是 Configuration Manager 客户端服务WinRM则不是远程控制运行的必要条件但有些版本的控制台依赖 WinRM 做 WMI 调用。更稳妥的是直接看 RemoteControl.log如果出现RCHost错误优先检查防火墙是否放行了C:\Windows\CCM\CmRcService.exe。同时确认客户端的远程协助端口 2701 没有被占用。6.2 与自动化运维结合的技巧SCCM 2012 的远程控制可以成为桌面运维和 it 运维效率工具的一部分。对高频问题我通常先通过 SCCM 设备集合建立“待处理”组再在 PowerShell 里调用客户端资源执行命令而不是一台台远程桌面。比如下面这段命令会从 SCCM 视图里取出所有 Windows 10 设备并检查磁盘空间帮助快速定位磁盘告警的机器Get-CMDevice -CollectionName Windows 10 客户端 | ForEach-Object { Get-WmiObject Win32_LogicalDisk -ComputerName $_.Name -Filter DriveType3 | Select-Object __SERVER, DeviceID, {NFreeGB;E{[math]::Round($_.FreeSpace/1GB)}} }这段示例用Get-CMDevice从 SCCM 拉取集合成员再用 WMI 读取每台机器的逻辑磁盘信息实际使用时要先运行Import-Module ConfigurationManager并连接站点路径。这种方式把 SCCM 的设备发现能力和 PowerShell 的批量处理结合省掉大量逐台点开远程控制的时间也让远程控制真正用在需要人工干预的异常场景里。本文还有配套的精品资源点击获取