终于走到安装这一步了。前两篇把AD域、SQL Server、WSUS这些底座都铺垫完毕,剩下的就是把这个叫SCCM的庞然大物请进来。网上SCCM安装教程挺多,但大多数停留在“下一步下一步”的程度,真正在生产环境里踩过坑的人都知道,SCCM安装最难的从来不是点鼠标,而是安装前那一堆看着不起眼、漏掉一个就能让你折腾一整天的前置条件。
这篇基于我自己的SCCM部署实操记录,从安装前检查、先决条件核查、正式安装到安装后初始化,一条线完整走下来。全程用到的环境是Windows Server 2019,SQL Server 2019,WSUS跑在同一台服务器上,站点代码定的P01,中央站点和主站点合并部署,也就是单站点结构。如果你手头是CAS+主站点的多层架构,流程主体一样,只需要额外注意角色分配和通信端口上的差异。
这篇重点放在“为什么这么做”而不是单纯“怎么点”,优先保证你搞清楚每一步在干什么。每个阶段我会把踩过的坑、需要注意的细节同步标注出来,这些都是常规教程里不会跟你说的。
1. 安装前确认:这几项没有搞定,后面全是坑
1.1 服务账户与权限核对的细节
SCCM安装需要至少两个服务账户,一个负责站点服务器和SQL通信,一个负责站点推送安装到客户端。在域环境里,这两个账户不能是同一个,而且不建议直接用域管理员。
我自己常用的一套组合是这样的:
- SCCM站点服务器账户:域账户svc_sccm_server,加入本地Administrators组,并且需要“作为批处理作业登录”的权限。SQL Server安装过程中会用到它,站点安装也要用。
- SCCM客户端推送账户:svc_sccm_client,域普通用户即可,但需要在客户端安装时被加入目标机器的本地管理员组。这个权限你在SCCM控制台里配置“客户端推送安装”时直接指定就行,不需要提前手动加。
- SQL Server服务账户:这里我用了svc_sql,不要再用什么NETWORK SERVICE之类的老做法了。在SQL配置管理器里把SQL服务的登录身份改成这个域账户,同时把SQL Agent服务也换掉。
还有一个关键点容易被忽略:SQL Server如果决定采用Windows身份验证模式(生产环境建议),那么svc_sccm_server账户必须在SQL Server里拥有sysadmin角色权限,至少安装期间必须有,装完再降级也不迟。我用的是在SQL Server安装时直接把svc_sccm_server指定为SQL管理员,这样省去后期手动授权的麻烦。
1.2 SQL Server排序规则和WSUS的检查
很多初次接触SCCM的人会在这里翻车。SCCM要求SQL Server实例的排序规则是SQL_Latin1_General_CP1_CI_AS,如果装SQL时手滑选了别的排序规则,哪怕是大写CI_AS、但前缀不同的版本,SCCM的先决条件检查也会直接报错,而且这个错误不会给你任何补救余地,只能重建数据库实例。
再说WSUS。SCCM的软件更新点角色依赖于WSUS,安装SCCM之前,WSUS可以不用提前装好,但如果你计划在SCCM安装中配置软件更新点,那么WSUS的安装包是免不了的。我的建议是:提前把WSUS角色装上,别拖到SCCM装完再补。原因很简单——SCCM安装过程中会尝试连接WSUS的数据库,如果WSUS没就绪,软件更新点配置会卡在“正在连接WSUS Server”的状态。
另外注意WSUS的端口:默认情况下WSUS走8530端口(HTTP)或8531端口(HTTPS),SCCM配置软件更新点时如果确认了WSUS走HTTPS,那么安装时默认的8531是没问题的。但如果你的WSUS没有启用SSL,那SCCM里配置软件更新点时一定记得把端口改成8530,否则连接测试永远失败。
1.3 AD架构扩展:一个不跑位就装不了的角色
SCCM站点安装前必须在AD域里扩展架构,这是非做不可的一步。运行extadschema.exe可以对架构进行扩展。这个工具位置在SCCM安装介质的SMSSETUP\BIN\X64目录下。
扩展AD架构的本质是在Active Directory中为SCCM添加专属属性和类,比如用于客户端发现和站点边界信息存储的容器。我见过有人跳过这步直接装站点,结果控制台里客户端发现和边界完全不可用,而且报错非常隐蔽,不会直接告诉你“架构未扩展”,而是各种间歇性IO错误。
操作上需要注意一点:在扩展架构之前,确保当前域账号隶属于Schema Admins组。整个扩展过程大概一分钟左右就能跑完,不会弹任何成功提示,跑完直接返回命令行。想确认是否成功,打开ADSI Edit,定位到CN=Schema,CN=Configuration,DC=xxx,DC=xxx,检查CN=System Management等容器是否存在。SCCM实际在架构上新增的属性和类很多,不必一一核对,只要看到新容器出现就算过。
1.4 安装账号与文件共享的权限规划
SCCM安装过程中需要创建管理共享和分发点共享,这意味着安装账号必须在站点服务器本地具有磁盘写入权限,并且在远程分发点(如果现在不配,后续也会配)上拥有管理员权限。
这里分享我自己的分工经验:中间的站点安装阶段,直接用svc_sccm_server账号执行安装向导;但在创建分发点角色时,单独准备一个账号专门用于分发点访问,避免一个账号权限过大。后续如果需要把客户端推送安装扩展到不同网段,再单独建一个用于网络访问的账号,这个账号不需要任何交互登录权限。
2. 下载与准备SCCM安装介质
2.1 安装源文件从哪里找、怎么选
SCCM安装介质从微软评估中心或批量许可服务中心下载ISO。版本方面,我建议用最新的Current Branch版本,例如2211、2303等,避免老版本在Windows Server 2019上出现兼容性问题。
下载后把ISO文件加载到虚拟光驱或者解压到本地文件夹,这里有个值得注意的点:安装源路径不要太长,也不要包含中文和空格。我习惯的做法是把安装文件解压到D:\Sources\SCCM_2303这类纯英文短路径下,避免setup过程中出现莫名其妙的路径识别问题。
2.2 安装界面里的几个关键选项
运行根目录下的setup.exe,弹出的界面会显示几个选项:安装Configuration Manager站点、获取最新更新、安装管理控制台等。选择安装Configuration Manager主站点。
这里要留意一下,如果你之前没有下载最新的安全更新或功能更新,界面上会提示“使用最新更新还是后续更新”。我自己的建议是:生产环境选择“使用最新更新”,提前把更新包放到本地路径或者从互联网下载,安装过程会把更新直接集成进站点,避免站点建好之后还要打补丁重启。当然,如果测试环境追求快速部署,选择“以后获取更新”也可以。
在安装向导开始之前,系统会先检查一次基础环境,包括.NET版本、Windows Server版本等,如果这里就报错,优先处理基础环境问题,不要点“忽略”。
3. 正式安装过程:一步一步把它跑起来
3.1 先决条件检查器:让它替你兜底
正式进入安装向导后,第一个关键节点是“先决条件检查”。SCCM的先决条件检查器非常强大,它会扫描服务器角色、功能、SQL Server版本和排序规则、WSUS状态、防火墙端口、连网情况等。
我的建议是:不要跳过检查,也不要在检查报错后直接硬装。检查器会生成一份详细日志,路径通常在C:\Program Files\Microsoft Configuration Manager\Logs\ConfigMgrPrereq.log,同时还能导出HTML报告。
常见的检查项和对应处理我整理成了一张表:
| 检查项 | 失败原因 | 解决方案 |
|---|---|---|
| SQL Server版本 | 低于2012,或SP版本过旧 | 升级SQL Server至受支持版本(2016/2017/2019均可) |
| SQL排序规则 | 不是SQL_Latin1_General_CP1_CI_AS | 只能重建实例,无法直接修改 |
| WSUS版本 | 缺失或版本过旧 | 安装WSUS角色并运行Windows Update |
| Windows Server版本 | 非受支持版本 | 使用Windows Server 2016及以上 |
| AD架构 | 未扩展架构 | 运行extadschema.exe |
| 管理权限 | 当前账号权限不足 | 提升至本地管理员Schema Admins |
| WMI权限 | 当前账号无法访问WMI | 检查WMI健康状态,重置WMI存储库 |
| 防火墙端口 | 站点通信端口被屏蔽 | 开放TCP 1433(SQL)、TCP/UDP 135(RPC)、TCP 445(SMB) |
检查器给到的错误码(例如0x80070005是拒绝访问,0x80041003是WMI权限异常)可以直接在网上搜到对应说明,但我的经验是,绝大多数生产环境失败都集中在SQL排序规则和WSUS连接权限这两块。
3.2 站点代码与安装类型的选定
过了先决条件检查后,设置站点代码和站点名称。站点代码在SCCM体系里是用来标识站点的唯一代号,由三位字母数字组成,不能随便改。命名上建议用有业务含义的代码,比如P01代表生产环境第一个站点。
这里提醒一下:一旦确认站点代码,建站之后就不能修改,如果需要更换站点代码只能重建站点,所以命名期望值可以放高一点,提前规划好区域、环境、序号的关系。
安装类型选择“主站点”。如果你有跨地域的大型网络,之后需要规划CAS(中央管理站点),那么当前是主站点的前提下,后续可以通过“被动站点”等方式做扩展,也可以在层级中加入CAS,但这种方式比较费事,不如一开始就规划好。
3.3 安装组件和角色的配置
进入“安装的角色和功能”界面,这里可以选择需要在此站点服务器上安装的角色。默认会勾选管理点、分发点等核心角色。
有一个非常容易被忽略的选项:软件更新点。如果计划在SCCM里管理Windows补丁更新,建议此时就勾选。软件更新点对应WSUS,安装SCCM时如果配置了这个角色,会自动和WSUS服务建立关联。如果不勾选,后续也可以手工添加,但手工添加的步骤反而复杂,而且在日志排查时会多出很多无关干扰项。
再说管理模式。管理点是SCCM客户端和站点服务器通信的桥梁,默认会创建当前站点服务器作为管理点。如果你打算以后使用云管理网关(CMG)或额外管理点,这里不用多做配置,后续直接在控制台里加就行。
3.4 数据库与站点服务器连接配置的关键坑
到“数据库配置”这一步,需要指定SQL Server实例名称和数据库名称。默认数据库名称就是站点代码,你可以在旁边新建,也可以沿用默认。
一个最常见的坑在这里出现:SQL Server和站点服务器不在同一台机器上。SCCM对SQL的远程访问支持很成熟,但需要额外配置防火墙端口、启用TCP/IP协议,以及确保站点服务器到SQL Server实例之间的端口是通的。我处理过很多远程SQL的问题,几乎有一半是SQL Server的TCP/IP协议没有被启用导致的,另外一半是防火墙没有放行1433端口。
我的建议是,无论SQL是本地还是远程,都提前手动测试一下端口连通性。在站点服务器上用PowerShell运行以下命令来测试:
Test-NetConnection -ComputerName SQLServer01 -Port 1433如果端口测试正常,再进行下一步。如果是本地SQL,这个问题基本不存在,但SQL的命名实例还需要确认SQL Browser服务(UDP 1434)是否启动,否则SCCM可能无法解析实例名。
3.5 客户端通信设置与边界配置
SCCM安装过程中会询问客户端的通信方式:HTTP或HTTPS。这里涉及一个概念——站点系统是否需要启用HTTPS模式。
如果企业内部有Active Directory证书服务,而且计划给所有客户端颁发证书,那么可以考虑HTTPS模式。但现实中很多企业的SCCM站点一直用HTTP模式,然后在IIS上配置了增强型HTTP(Enhanced HTTP),这样既避免了每台客户端都要申请证书的麻烦,又保证了通信安全。
我给大多数客户的建议是:先用HTTP安装跑通整体流程,后续再平滑升级到HTTPS。因为排错阶段,HTTPS模式带来的证书信任链问题会掩盖掉很多其他配置问题,让排查难度直线上升。SCCM在OOB(面向互联网)场景下必须使用HTTPS,那就另说。
边界配置在安装过程中可以暂时跳过,等控制台初始化之后在“管理”节点下配置。但有一个点要提前明确:边界决定了哪些客户端可以在这个站点被管理,如果没有边界,SCCM会认为客户端存在于未知网络,管理行为会受限。
安装向导走到最后,会让确认所有设置。确认无误后点击“安装”,站点安装过程就此开始。这段过程根据服务器性能和网络状况,通常需要45到90分钟。
3.6 安装日志与实时状态查看
安装过程中,不要傻等,打开配置文件管理器安装日志所在目录,实时观察进度。默认路径是:
C:\Program Files\Microsoft Configuration Manager\Logs\关键日志文件是ConfigMgrSetup.log,它会详细记录当前安装到了什么组件、有没有报错。另外还有ConfigMgrPrereq.log、ConfigMgrADSchema.log等,如果某个环节卡住,对应日志会给出明确的错误线索。
安装进度到大概70%时,控制台文件开始部署,这时距离完成就不远了。我实测下来,在VMware虚拟机环境,4核8G、本地SSD的配置下,完整安装大约50分钟;如果用的是机械硬盘,大概率会超过90分钟,而且中途容易因为IO性能导致超时报错。
安装完成后的界面会提示“Configuration Manager控制台”启动,这说明站点服务器角色已经就绪,可以开始后续配置了。
4. 安装后的初始化配置与验证
4.1 控制台首次登录与站点状态验证
安装完成后,桌面或开始菜单会出现“Microsoft Endpoint Configuration Manager”控制台入口,从该入口登录。登录账号建议是安装时指定的站点管理员账号,或者域管理员。
控制台首页会显示站点信息,包括站点代码、版本、站点状态。这个界面常被忽视,但实际上非常重要,因为它直接反映了SCCM站点自身健康度。如果显示“不可用”或“错误”,说明某个组件未能安装成功,需要查看站点状态节点下的详细日志。
具体看“监视”下的“站点层次结构”和“站点状态”。正常情况下,站点服务器角色的状态为“正常”。如果状态异常,右键点击站点,选择“显示消息”,能看到具体的错误ID和描述。这段排查过程中的关键词搜索很有用,把错误ID复制到微软官方文档或者社区里查,很快能定位到问题。
4.2 发现配置:让SCCM看到你的服务器和电脑
站点装完,控制台里默认是空的。要让AD域里的计算机出现在SCCM管理范围里,需要先配置发现方法。
“管理”导航到“云服务”下的“发现方法”,里面有域林发现、Active Directory用户发现、Active Directory系统发现等。我的建议:
- Active Directory林发现:立即启用,并设置计划。它负责发现AD站点、子网和域,是边界自动配置的基础。
- Active Directory系统发现:用于发现域内计算机。建议配置为每天运行一次,避免控制台里迟迟看不到新设备。
- Active Directory用户发现:按需启用。如果后续要按用户集合推软件,这个发现是基础。
- 检测信号发现:建议启用,默认每7天一次,它能让客户端定期来报道,避免系统过期被清理。
- 网络发现:非必要不启用。它通过SNMP扫描网络,耗时很长,准确率还不高,现代SCCM环境基本弃用。
发现并不是瞬时完成的,第一次跑完探查通常需要15到30分钟,运行日志请关注站点服务器上的ADSysDis.log。
4.3 边界和边界组的设定
边界定义了哪些客户端属于这个站点。没有边界的SCCM站点,就像没有地图的城市,客户端来了也不知道该找谁。
在“管理”导航到“层次结构配置”下的“边界”,新建边界。边界类型包括AD站点、IP子网、IPv6前缀、IP范围。我的推荐做法是直接基于IP子网或AD站点来配置,大多数企业网段不复杂,用IP子网划分简单又直观。之后把边界添加到边界组,边界组的作用是为客户端分配管理点和分发点等站点系统。
配置边界组时,还要指定“站点分配”,勾选“使用此边界组进行站点分配”,这样客户端才能成功识别并指定到这个站点。分发点关联也在这里配置,把分发点角色加入边界组后,被此边界组管理的客户端才能从分发点下载内容。
4.4 客户端推送安装与首个客户端验证
让SCCM真正运行起来,最直观的标志是能看到客户端状态变为“在线”。
在“管理”导航到“站点配置”下的“站点”,选择当前站点,右键“属性”,在“客户端推送安装”选项卡里,勾选“启用客户端推送安装”。指定客户端推送安装账号(就是之前准备的svc_sccm_client),也可以点击“允许将配置管理器客户端推送到域控制器”的选项——但在域控上安装客户端要慎重,不建议直接把域控变成管理客户端的大本营,除非用于测试。
做完这些配置后,手动推送一台测试机的客户端。方法是在“资产和符合性”工作区里,找到目标计算机,右键选择“安装客户端”。你会看到客户端安装任务开始,日志路径在目标机器上是C:\Windows\CCM\Logs\CCMSetup.log,就绪后则能看到“Client installed successfully”字样。
在客户端机器上打开“配置管理器”控制面板项,查看“站点代码”和“分配的站点”,如果显示P01,说明分配给站点成功。等几分钟后,回到SCCM控制台的“资产和符合性”里,这台机器的状态会变成绿色,显示“客户端已管理”。
4.5 站点角色健康检查清单
再分享一份安装后立即执行的检查清单,这是我部署每个SCCM站点后必过的一套流程:
- 确认管理和分发点角色均正常,站点状态显示正常。
- 在控制台“监视”节点下查看“系统状态”,没有异常组件。
- 确认发现数据开始回流,能看到AD域内的计算机。
- 测试端到端管理通道——从推客户端到客户端上报硬件清单,再到控制台显示状态在线。
- 确认SCCM站点服务器和SQL Server之间的连接稳定,没有频繁断连日志。
- 查看站点服务器的事件日志,关注级别为“错误”或“警告”的SCCM相关事件。
- 验证WSUS与软件更新点的同步是否正常,这决定后续补丁管理能否顺利展开。
这一套下来,基本可以判定SCCM站点已经可用。
5. 安装中常见的坑与必留备用方案
5.1 SQL排序规则不一致导致先决条件失败
SQL排序规则的问题前面提过,这里再讲透一点。SCCM的先决条件检查器只会告诉你排序规则不符合要求,但不会帮你改。如果不想重装SQL,有一个曲线救国的办法:新建一个与SCCM兼容排序规则的实例,或者在同一实例下单独创建一个兼容排序规则的数据库。
但这种方式的可维护性很差,同一个实例下混合排序规则会让后续升级和备份恢复变得很痛苦。我的个人结论是:生产环境直接重装SQL一了百了,毕竟这条规则是SCCM架构层面的硬性要求,不要拿生产环境去试探底线。
5.2 安装账号权限不足或双重跳转失败
很多情况下,安装账号是域管理员,理论上权限足够。但安装SCCM分发点组件时,如果分发点角色需要访问远程服务器上的文件共享,可能会遇到双跳认证问题——也就是凭据无法从站点服务器传递到第三台服务器上。
处理方案有两个方向:一是为分发点服务单独配置台账户并且目标机器加入本地管理员组;二是在目标服务器上提前配置好文件共享并授权给站点服务器账户。这里提醒我为关注的是第二种方式,因为安全边界更清晰,后续排障也更方便,不会因为台账户权限过大带来额外安全风险。
5.3 防火墙端口未放行导致客户端无法注册
客户端安装成功但始终无法分配给站点,大多数原因是防火墙拦截了客户端与管理点之间的通信。SCCM默认管理点监听443或80端口,如果是自签名证书+HTTPS模式,则监听443;纯HTTP模式下监听80。
排查办法:在客户端机器上测试管理点端口连通性。
Test-NetConnection -ComputerName MP01 -Port 80如果端口不通,检查服务器所在网段防火墙以及客户端本地的Windows防火墙是否放行。SCCM客户端安装时不会自动添加这些入站例外,如果你内部有统一的防火墙策略,一定记得提前把客户端到管理点、分发点的端口放行策略做进去。
5.4 站点备份与恢复策略:等出问题再想就晚了
SCCM站点安装完成后,我强烈建议立即配置站点备份任务。在这个节点上做备份成本最低,效果最好,因为它打的是一个干净站点的基线。
在“管理”导航到“站点配置”下的“站点”,右键“属性”,切到“备份”选项卡,勾选“为此站点配置备份设置”,指定备份存储位置,并提供一个带写权限的备份账户。SCCM本身的备份是备份整个站点配置和数据库,通过SQL的备份组件来完成,比较值得一提。
除此之外,我还会建议在安装完成后给虚拟机或物理机打一个快照/系统镜像。毕竟SCCM这东西越往后配置越复杂,一旦后续操作失误,回滚到安装完成时点的状态会很省心,这个在测试环境尤其好用。
5.5 安装失败后的排查日志路径速查
如果你运气不好,在安装中段就遇到失败,去这些日志里找原因,比在界面上瞎猜靠谱得多:
C:\Program Files\Microsoft Configuration Manager\Logs\ConfigMgrSetup.log:安装主日志,从启动到结束全流程记录。C:\Program Files\Microsoft Configuration Manager\Logs\ConfigMgrPrereq.log:先决条件检查的日志,所有未通过项都能在这里看到详细原因。C:\Program Files\Microsoft Configuration Manager\Logs\ConfigMgrADSchema.log:AD架构扩展日志,如果扩展失败,这里会有线索。%TEMP%\ConfigMgrSetupAdmin.log:安装向导的界面日志,界面交互上的异常会记录在这里。- SQL Server的ERRORLOG(默认在SQL安装目录下的
\MSSQL15.MSSQLSERVER\MSSQL\Log目录):如果安装过程卡在数据库构建或连接环节,这个日志价值极高。
一个非常实用的排错习惯是:每次SCCM安装失败,先看ConfigMgrSetup.log的最后300行,绝大多数问题就藏在最后几十行里,你甚至不需要看完整日志。
6. 安装阶段的经验心得
再补充一点自己在反复安装SCCM后形成的一些个人习惯和判断标准。
安装SCCM这个操作,本质上是在给整个企业终端管理体系打地基。地基做得好不好,后期所有软件分发、补丁更新、系统镜像部署、资产管理功能全都受它影响。我见过很多团队在安装阶段赶进度,先决条件里的警告直接忽略,结果站点看起来装完了,但软件更新点连不上WSUS、客户端始终无法分配、边界混乱导致内容拉取失败——这些问题的根源都指向安装阶段偷掉的懒。
我个人在执行安装时一定会拉一张excel清单,每完成一项勾一项,从AD架构扩展到SQL排序规则确认,从服务账户权限到防火墙端口放行,逐项打钩。整个过程下来,安装失败率基本可以控制得很低。这里把这张清单的核心项分享出来,你可以直接照抄来用:
- AD架构已扩展,Schema Admins权限确认。
- SQL服务使用域账户运行,排序规则为SQL_Latin1_General_CP1_CI_AS。
- WSUS角色已安装或者已确认端口能连通。
- 服务账户已创建,权限字段逐个核对。
- 站点代码规划好,不与现有环境重复。
- 安装源文件已解压至纯英文短路径。
- 先决条件检查结果中无错误项,仅有可接受的警告。
- 安装过程日志监控到80%以上无明显报错。
- 控制台能正常打开,站点状态显示正常。
- 首次发现数据已回流,客户端推送安装成功一台测试机。
- 站点备份任务已配置,备份目录权限正常。
按这份清单走一遍,整个安装项目的成功率会高很多。
SCCM安装只是这个系列的第三篇,站点跑起来之后,更繁琐的是后续的配置项:软件更新点同步、集合建立、应用程序打包分发、操作系统镜像部署、合规性设置等等。每一步都有各自的坑要趟。安装阶段把习惯养好,日志路径记牢、排错思路理顺,后面的工作会顺很多。希望这篇实操记录能帮你少走几趟弯路,把SCCM稳稳当当地装起来。