最近在做公司的SCCM项目,过程中遇到了一些问题,发现网上对此类问题的解答很少,把自己在服务器部署过程中的一些排错过程和大家分享下。

    因为考虑到以后的架构升级,所以项目中规划了一台A虚拟机做管理中心站点,用于主站点之间的复制和资产信息收集。外加一台B虚拟机做主站点,用于软件分发,软件更新以及报表服务。

    在A虚拟机上成功搭建管理中心后,在虚拟机B上搭建了一台主站点:PRI,并启用了主站点的客户端请求安装。之后发现客户端一直无法安装成功,登陆客户端检查客户端windows防火墙状态为:关闭。进入客户端任务管理器中看到ccmsetup.exe进程可以运行,同时客户端的C:\windows路径下也拷贝过来了源安装文件。接着检查位于C:\windows\ccmsetup\logs\ccmsetup.log日志,发现日志中有报错信息,根据报错信息,发现客户端无法连接到管理点角色。进入SCCM的管理控制台的监视,有错误信息,显示管理点安装未成功,一直在尝试重新安装。于是关闭虚拟机B。

    新启用一台虚拟机C,并在C上搭建主站点:PDS,站点搭建完成后,同样启用客户端请求安装,过了一段时间陆续有客户端激活。在SCCM管理控制台做软件分发包,并分发给已激活的客户端,这时候问题出现了,软件包分发到分发点,进行部署后,在客户端的软件中心中可以看到分发的软件包,但是点击安装后,报错:无法进行安装,在任何服务器上找不到安装的源文件。


wKiom1bgKZbStTiRAACO58RcSFI828.jpg


以为是包共享文件夹未设置分发点的计算机账号权限的问题,检查包共享的文件夹的权限,发现都没问题。登陆客户端,进入c:\windows\ccmcache发现为空文件夹,软件包的确未能进行下载。因为客户端策略中是启用了BITS服务的,而BITS默认应用的是http下载,考虑是否是IIS配置时权限进行了错误的设置,检查后发现并无明显错误。接着检查客户端,此时发现客户端的属性里,包含了两个主站点信息:PRI和PDS,PRI被客户端认为是首选的分发点, 客户端会默认从PRI站点去获取分发的软件包,而这时候PRI站点处于关闭状态,肯定不可达。而我在做软件包部署的时候又没有回退,所以导致客户端一直获取不到软件包。

    对于SCCM的部署,个人觉得还是要多看微软的官方文档,把官方的文档看熟。地址链接如下:

https://technet.microsoft.com/zh-cn/library/gg682041.aspx 虽然网上的部署介绍有很多,但只是Next的介绍,在实际过程中遇到问题,靠这个去做Troubleshooting很难。

    下面把我个人在实际项目过程中,遇到的一些问题和经验罗列如下:

1、Windows防火墙:在客户端部署的时候,需修改防火墙的入站规则,在预定义中启用WMI以及默认的文件和打印共享,否则会导致客户端无法进行安装。

2、SQL Server的问题:管理中心站点和主站点不能运行在同一个数据库实例中,必须创建不同的数据库实例。如果是两个实例放在同一台服务器上的话,需要将SQL Server进行两次安装。在数据库安装完成后,需要进入到数据库的配置管理器中,修改第二个数据库的TCP端口。默认情况下,服务器上的第一个数据库实例会使用1433端口,第二个则使用动态端口监听,而SCCM是不支持动态端口的,将数据库网络设置中动态端口0清除,并设置TCP端口的固定值。否则会导致站点的安装检查无法通过。同时在安装过程中,对于一台服务器两个实例的情况下,第二个实例的SQL Server的Service Broker端口需要重新指定,否则安装过程中也会导致报错。

3、关于排错:在配置SCCM的时候,进行排查建议大家多看服务器端和客户端的日志。

IIS日志位置:C:\inetpub\logs\LogFiles\W3SVC1

SCCM配置管理器日志位置:C:\Program Files\Microsoft Configuration Manager\Logs

客户端组件日志位置:C:\Windows\CCM\Logs

根据相关的日志,会比较快的进行故障的排除。

4、多看微软的官方文档,弄清楚系统的工作流,这对排错很重要。