1. 安装前的准备工作,先把地基夯实
SCCM(System Center Configuration Manager,现在也叫 Microsoft Endpoint Configuration Manager)这玩意儿的安装,说难不难,说简单也绝对不简单。系列文章前面两篇咱们已经把 AD 域环境、SQL Server、WSUS 这些前置依赖都捋了一遍,到这篇才真正轮到 SCCM 本体上场。如果你是把整个系列从头跟下来的,那现在服务器应该已经有了,域控也正常,SQL 装好了,WSUS 也通了。要是前面哪一步还没搞定,我劝你先别急着往下走,SCCM 安装失败十有八九都是前置环境的问题,而不是安装向导本身的问题。
这篇文章我打算按自己的实操习惯来讲,也就是先核对前置条件,再走安装向导,然后做站点初始化和基础配置,最后把常见报错整理成速查表。这样安排的好处是,哪怕你是第一次装 SCCM,也能照着一步步来,而不是等到报错了才回头翻文档。
先说清楚这台 SCCM 服务器要承担什么角色,因为我给的安装配置方法是基于 CAS + Primary 这种大型环境之外的场景,也就是最常见的中小型环境——单台 Primary Site 服务器,数据库和站点角色都装在同一台机器上。这个架构也是微软官方推荐的起步形态,等后面站点扩了、客户端数量上来了,再考虑把数据库拆到独立 SQL Server 或者加 Secondary Site,那是后话。
装 SCCM 之前,有几件事我建议你在心里先过一遍,避免装到一半发现哪里不对:
- AD 域环境必须是健康的,SCCM 安装过程要读写很多 AD 属性,尤其是 System Management 容器,权限不够会直接报错。
- SQL Server 的排序规则,默认 Latin1_General_CI_AS 就行,别手贱改成别的。
- 服务器时间要和域控同步,偏差太大会导致 Kerberos 认证失败,SCCM 安装时的很多步骤都依赖认证。
- 防火墙端口需要在安装时就规划好,后面我会列一张常用端口表。
- 安装账号必须是域管理员(或者至少要具备本地管理员权限),同时要有 SQL Server sysadmin 权限。
这些点看着琐碎,但每一个都能让安装过程卡死,别问我怎么知道的,全是拿时间换来的教训。
2. 安装向导核心步骤拆解,一步都不能跳
2.1 准备安装文件与启动安装向导
SCCM 安装文件一般有两种来源:一种是直接从 VLSC(Volume Licensing Service Center)或 M365 管理员中心下载 ISO 镜像;另一种是微软评估中心下载 180 天试用版,适合做实验环境。无论哪一种,解压或挂载之后,你会看到一个SMSSETUP文件夹,里面有BIN、TOOLS等子目录。
注意,一定要以管理员身份运行
SMSSETUP\BIN\X64\setup.exe,因为安装过程会向 AD 写入和注册很多东西,普通权限会直接失败。
启动安装向导后,第一个有选择性的页面是“开始使用”,里面有三个入口:安装 Configuration Manager 站台服务器、恢复站台服务器、从另一台机器下载安装文件。咱们选第一个“安装 Configuration Manager 主站点服务器”,然后点“下一页”。这里有个小细节,如果你是想做报表点或者其他扩展,后面也可以通过“管理中心站点”或“辅助站点”的方式来加角色,不用重新装一遍。
2.2 产品密钥与许可协议
产品密钥这一步,不同类型的环境选择完全不一样。微软官方给了三种模式:
- 评估版(Evaluation):不需要密钥,适合 PoC 环境,180 天后可以升级到正式版。
- 正式版:需要输入 25 位密钥,一般是 VLSC 账号里对应产品的 Key。
- 已安装的许可证:如果你之前已经在这个操作系统上装过 SCCM 的正式版,会用这个选项来延用。
实验环境我一般直接选评估版,省事。生产环境请老老实实输入正式 Key,因为 SCCM 的许可模式是 Server + CAL(或者按用户/设备订阅),装完之后还有授权合规的问题,别等到微软来敲门才想起来补。
接着是许可条款,勾选同意就行,这个没什么好讲的。再往下会提示安装“Configuration Manager 主站台”需要具备的组件,包括:
- .NET Framework 4.8(若缺失,向导会提示)
- WSUS 3.0 SP2 或 Windows Server 的 WSUS 角色(用于软件更新点角色)
- ADK(Windows 评估和部署工具包,用于操作系统部署)
- SQL Server Native Client
每项都列出了状态,绿色的勾代表满足,黄色的叹号代表需要马上处理。在这里最容易出问题的是 ADK,很多人在装完 SCCM 主程序后才想起来做 OSD 镜像引导,结果发现 ADK 版本不对,又得折腾一遍。我的建议是安装前就把 ADK 装好,版本参考你当前操作系统发行版对应的 Windows ADK 版本。比如 Windows Server 2022 环境搭配 ADK for Windows 11,这个在微软文档里能查到对应关系。
2.3 站点类型与安装路径规划
现在到了比较关键的选择:站点类型。因为咱们没有 CAS,所以直接选“主站点”(Primary Site)。旁边会问你是否要将此主站点设为默认站点,这个默认站点在环境里只有一个主站点时是无所谓的,但如果是多主站点环境,建议选“是”,方便后续管理。
站点代码和站点名称这边,我要多说两句。站点代码是 SCCM 内部使用的三位字符标识,只能包含字母和数字,而且必须是唯一的,不能用数字开头,比如P01、LAB都行。站点名称是一段可读描述,比如“Production Primary Site – 上海总部”。这两个字段装完之后是能改的,但是特别麻烦——站点代码改起来基本上等于重装,站点名称好一点,但也没必要冒这个险,起名的时候一次性想清楚最靠谱。
安装路径我强烈建议装在非系统盘,比如D:\Program Files\Microsoft Configuration Manager。原因不是系统盘不能用,而是 SCCM 运行久了会产生大量日志、临时文件和内容库文件,系统盘分区一般都比较小,容易把 C 盘塞满,到时候哭都来不及。我见过很多生产环境都是 C 盘红了才发现问题,一查全是 SCCM 的日志和内容库。
还有个“配置站点数据库安装”页面,如果前面 SQL 还没装,向导会在这里提醒你。正常情况我们已经在环境里准备好了 SQL Server,那么这里就选择“使用现有 SQL Server 实例”。数据库名可以默认,也可以自定义成CM_P01这种有辨识度的名字。数据库文件位置建议也指到非系统盘的路径,道理和安装路径一样——SCCM 的数据库增长很快,尤其是硬件清单和软件清单数据,一个月就能涨好几个 GB。
提示:安装 SCCM 的服务器本身的 Windows 防火墙可以开启,但一定要放行 SCCM 需要的端口。端口不通的话,客户端与站台之间的通信会非常痛苦,后面排错也很麻烦。
2.4 站点组件角色勾选
再往下是“配置站点系统角色”,这里会出现几个组件:
- 管理点(Management Point)
- 分发点(Distribution Point)
- 软件更新点(Software Update Point)
传统的做法是先装主程序,再在控制台慢慢添加角色。但我个人推荐在安装向导这一步就把管理点和分发点勾上,因为这两个是 SCCM 正常运行的基础角色,客户端入库、内容分发都要靠它们。软件更新点可以稍后配,因为它依赖 WSUS,你可以在装完 SCCM 后再把 WSUS 挂到软件更新点上,这样能减少安装向导里的耦合点。
如果你想把分发点装到其他服务器上,那也可以在向导里不选,后面通过控制台添加站点系统服务器来实现。不过第一次部署,我建议先都装在同一台 Primary Site Server 上,等运行稳定了再逐步拆分角色。
关于安装选项里“自动将站点服务器加入安全组”这类细节,保持默认即可。安装完成后你可以在 AD 里看到 SCCM 创建了几个通用安全组,比如SMS_SiteSystemToSiteServerConnection_xxx这一类的,是 SCCM 正常运作的一部分,别看着奇怪就删掉。
3. 安装完成后的初始化配置,才是真正上手的开始
3.1 通过“先决条件检查”是第一步胜利
安装向导在真正开始安装前,会执行一次“先决条件检查”。这个检查会扫描前面讲到的所有依赖项,包括 SQL Server 版本、WSUS、ADK、权限、防火墙端口等。如果检查不通过,安装会停在这里等你修完再继续。
这里我放一个我自己常用的检查清单,你可以对着看:
- 当前用户是否为域管理员、本地管理员、SQL Server sysadmin。
- 服务器是否加入了域。
- SQL Server 是否已启用混合模式认证(不建议纯 Windows 认证,某些报表组件会需要 SQL 登录)。
- Windows Server 服务中
Windows Update服务是否已设为非禁用状态。 - 相关端口是否被占用,尤其是 1433(SQL 默认实例端口)、80(管理点/分发点)、8530(WSUS 默认非 SSL 端口)、443(HTTPS 通信端口)。
如果检查出现红色错误,双击报错条目可以看到详细日志路径,默认在C:\Program Files\Microsoft Configuration Manager\Logs\ConfigMgrSetup.log。这个日志会记录每一步执行的具体命令和失败原因,比控制台上的错误信息有用得多。第一次检查如果不通过,冷静下来读日志,大部分错误原因都很直白。
如果你收到“此服务器不满足软件更新点先决条件”之类的提示,多半是 WSUS 没装或没配好。解决方法是去服务器管理器里把 WSUS 角色装上,然后打开 WSUS 控制台做一次“服务器清理向导”或至少等到 WSUS 数据库初始化完成,再回 SCCM 向导里重新跑检查。这个步骤我第一次装的时候折腾了大半天,后来才知道就是 WSUS 还没初始化完毕,SCCM 的软件更新点检测程序连不上 WSUS 的 API 而已。
3.2 正式安装过程中的日志监控技巧
前置检查通过后,点击“安装”就开始正式安装了。这一步不需要人为干预,但你可以实时观察安装进度。在安装过程中,SCCM 会依次完成以下任务:
- 创建 AD 容器(System Management)
- 在 SQL Server 上创建数据库和相应表
- 部署站点服务器
- 安装管理点和分发点角色
- 创建默认报表文件夹
整个过程快则 30 分钟,慢则 1~2 个小时,取决于服务器的磁盘性能和 SQL 初始化速度。中间如果出现某个角色失败,安装向导不会整个回滚,而是标记对应角色为“未安装”,然后继续装后面的内容。所以安装结束后,一定要回头检查每个角色的状态,别只看到“完成”两个字就以为万事大吉。
如果你想实时看到内部细节,可以用 CMTrace 工具打开ConfigMgrSetup.log,这个工具自带在SMSSETUP\TOOLS\文件夹里。CMTrace 的优点是它能自动高亮错误和警告,日志滚动也不会卡顿,定向排查体验远胜记事本。
3.3 控制台打开后必做的五件事
安装完成之后,桌面上会出现“Microsoft Endpoint Configuration Manager 控制台”图标。第一次打开控制台,我强烈建议你不要急着去配置各种功能,而是先做下面这五件事,按顺序来:
- 检查站点状态:在“管理” > “站点配置” > “站点”里,查看站点状态是否显示为“活动”。如果站点状态是“配置失败”或“正在配置”,回到日志查原因。
- 配置发现方法:在“管理” > “发现方法”里启用“Active Directory 用户发现”和“Active Directory 系统发现”。这是让 SCCM 能扫描到域内用户和计算机的前提。发现方法里面可以设置轮询间隔,我一般用默认的每 7 天一次全量扫描,再手动点击“立即运行完整发现”验证一遍。
- 配置边界与边界组:在“管理” > “层次结构配置” > “边界”里,添加 IP 子网或 AD 站点作为边界,然后创建边界组,把它们分配到站点。这一步是客户端自动分配站点的依据,不配置的话客户端会一直处于“未分配”状态。
- 验证管理点和分发点状态:在“管理” > “站点配置” > “服务器和站点系统角色”里,确认管理点和分发点都是“已安装”状态。如果有问题,右键“重新安装”或直接看
mpcontrol.log和distmgr.log。 - 把 SCCM 管理服务注册为高可用:这不是必选,但如果你后续要做高可用站点,建议在安装完就注册好。
你可能会问,为什么我强调先做这些?因为大多数 SCCM 学习者和新手最容易卡在“客户端装上了但迟迟没有出现在控制台”这一关,而这一关绝大多数问题都出在发现方法、边界组没有配好。把这些地基打好,后面的客户端部署和软件下发才会顺。
4. 常见安装问题与排查心得,全是踩坑换来的
4.1 “站点服务器到 SQL Server 连接失败”的排查思路
这是一个非常经典的报错,可能会出现在前置检查中,也可能在安装中途弹出来。最直接的原因就是 SQL Server 的网络连接有问题。排查顺序我建议是这样:
- 确认 SQL Server 服务是否启动。在 SQL Server 配置管理器里查看
SQL Server (MSSQLSERVER)服务状态,如果服务停了,启动它。 - 确认 SQL Server 监听端口。默认 1433,如果改过端口,SCCM 连接字符串那边也要对应改。检查方法是
netstat -ano | findstr 1433。 - 确认 Windows 防火墙是否放行了 1433 端口。这个很关键,因为 SCCM 安装在远程服务器上的时候,防火墙没放行会导致连接超时。
- 确认 SQL Server 是否开启了 TCP/IP 协议。SQL Server 配置管理器里,如果
SQLEXPRESS实例的 “Protocols” 中 TCP/IP 是禁用状态,就启用它并重启服务。 - 最后,检查 SQL Server 账号的权限。SCCM 在安装时会创建一个名为
sa的 SQL 登录账号(如果你选了混合模式认证),并赋予sysadmin权限。如果这一步权限不足,后面所有写库操作都会失败。
我实操中遇到过一种很隐蔽的情况:SQL Server 是采用默认实例安装的,但服务器名解析有问题导致 SCCM 连不上。后来发现是 DNS 里有一条旧记录指到了别的 IP。解决方法是把服务器名称换成 FQDN(比如cm01.contoso.com)来连接,或者在 hosts 文件里临时指定解析。这个问题不太容易想到,我特意写在这里提醒大家。
4.2 “发现方法不生效,AD 同步不到用户/计算机”的排查方法
装完 SCCM 之后如果发现“发现方法”里运行结果显示“成功”但迟迟看不到资产,先不要慌,大概率不是安装问题,而是权限或配置问题。
最常见的坑是System Management容器没有被正确创建,或者 SCCM 服务器账户没有对容器的完全控制权限。验证方法是打开 ADSI Edit,在CN=System下面找到CN=System Management,然后右键属性,在“安全”标签页里查看 SCCM 服务器计算机账号是否具备“读取”和“写入”等权限。如果没有,就手动给这个容器添加 SCCM 服务器账号的“完全控制”权限,或者重新运行一次 SCCM 安装补丁(Setup.exe 支持对现有站点做“修复”)。
还有一个容易忽略的点:发现方法里设置的“活动目录容器”必须指定到正确的 OU 或路径,比如LDAP://OU=Computers,DC=contoso,DC=com。如果路径写错了,SCCM 只会静默跳过,不会报错,这也是很多新手困惑“明明配置了为什么没发现”的原因。我建议在配置里同时选中“增量发现”和“立即运行完整发现”,然后去控制台稍等几分钟刷新,如果没有出现,再去看adsysdis.log的详细记录。
4.3 客户端安装失败的经典场景
SCCM 安装完成后,下一步最常做的就是推送客户端。很多人在这一步会遇到客户端安装失败,报错码五花八门,最常见的有0x80041002、0x87d00227等,其实根源往往是:
- 防火墙没放行 SCCM 相关端口(135、139、445 等)。
- 客户端机器无法访问站点服务器的共享目录
\\CM01\SMS_<站点代码>。 - 客户端机器的时间与服务器偏差太大,导致 Kerberos 认证失败。
- 客户端已经有旧版的 Configuration Manager 遗留下来,冲突导致安装回滚。
针对这些,我建议你先用命令行手动测试一下:
ping CM01看网络是否能通。net use \\CM01\SMS_P01看是否能访问共享目录。- 在客户端机器上手动运行
ccmsetup.exe /source: \\CM01\SMS_P01\Client来做本地安装测试。
手动安装的日志会留在客户端机器的%windir%\ccmsetup\logs\ccmsetup.log里,通过看这日志能定位 90% 的客户端安装问题。
4.4 安装过程中的端口与防火墙,整理成速查表
说到防火墙,我就把 SCCM 环境下最常用的端口整理成一张表,方便你照着配置。注意,如果这套环境只在内部运行且网络安全策略允许,也可以简单点直接把 SCCM 服务器和客户端的防火墙全关掉(不推荐生产环境这么做),但放行端口才是最稳妥的做法。
| 通信方向 | 端口 | 用途 |
|---|---|---|
| 客户端 → 管理点 | 80/443 | 策略请求、客户端通信 |
| 客户端 → 分发点 | 80/443 | 内容下载 |
| 客户端 → 软件更新点 | 8530/8531 | WSUS 通信 |
| 客户端 → 站点服务器 | 135, 445 | 客户端推送、共享访问 |
| 站点服务器 → SQL Server | 1433(或自定义) | 数据库连接 |
| 站点服务器 → 域控 | 389/636 | AD 读取 |
| 管理点 → 站点服务器 | 80/443 | 转发客户端请求 |
这张表没有把 SMS_SITE_MP 到 SQL 的全部内部端口列进来,因为很多是动态分配的,但上面这些是最基本、最会影响安装和客户端通讯的。你按这个表去放行,基本能解决一大半网络层面的问题。
5. 把安装过程留好记录,后续升级和维护会轻松很多
安装 SCCM 不是一个“一键完成”的动作,整个过程中的版本信息、部署拓扑、账号权限、数据库配置都应该记录在案。我个人的习惯是每部署一套新环境,都会整理一份“部署档案”文档,内容包括:
- SCCM 版本号(比如 2303、2311),以及 ADK 版本。
- SQL Server 的版本和排序规则。
- 站点代码、站点名称、站点服务器 FQDN。
- 安装账号是谁、权限如何分配的。
- 边界组里配置了哪些边界,DHCP 还是 IP 子网。
- 客户端推送安装的命令行参数。
- 软件更新点的 WSUS 配置细节(是否使用 SSL,端口是 8530 还是 8531)。
别嫌麻烦。等过了半年你发现一个客户端怪事,需要确认当初是怎么配的,这份档案能救你一命。而且 SCCM 的升级路径在微软官方是很讲究的,版本跳跃有严格要求,你留好当前版本和数据库信息,升级前对照官方文档就不会走弯路。
还有一个经验,就是安装日志文件的备份。SCCM 安装完成后,C:\Program Files\Microsoft Configuration Manager\Logs和C:\Windows\CCM\Logs里的日志,特别是用 CMTrace 能看到的部分,建议定期归档到非系统盘,或者在升级前整体拷贝一份。因为 SCCM 的很多疑难杂症要靠历史日志来对照分析,你不能等出事了才发现日志已经被清理或覆盖了。
6. 最后分享点个人体会
我装 SCCM 装得不算少,每次装完都有一种“终于搞定了”的感觉,但也深知这仅仅是开始。SCCM 这套系统真正精深的地方不在安装,而在于安装之后如何把各种功能用起来——软件分发、补丁管理、操作系统部署、合规性设置,每一个模块单独拿出来都可以写好几篇长文。
另外,我提醒一点,SCCM 的安装向导虽然能帮你搞定大部分默认配置,但从一开始就要有“命名规范”和“规划意识”。比如站点代码、站点名称、边界组的命名,若你未来可能会扩展到多个站点或做跨地域管理,这些命名就会直接影响可维护性。别等到站点多了才想起来规范,那时候改起来是动刀子的事。
如果你装到了这一步,恭喜,你已经拿到了通向 SCCM 世界的门票。后面的路还很长,但每走一步都会发现这个工具能帮你把重复的运维工作装进自动化流水线里。客户端部署、软件更新、设备清单、报表统计……每个功能都会让你觉得当初花在这些安装细节上的时间是值得的。