System Center Configuration Manager 2007补丁简介
当一个产品发布以后,由于种种的原因,可能会存在这样或者那样的问题需要后续的修正。同样,在System Center Configuration Manager 2007发布后,如果用户发现了问题需要修正,Sustained Engineering团队(简称:SE团队)将负责具体问题的分析、修正、测试和发布工作。
当补丁发布以后,用户可以联系微软客户支持团队下载,并且根据相应的KB文章进行安装。下面,我们就简单地介绍一下System Center Configuration Manager 2007中的补丁。
注意:本文只适用于SCCM2007RTM 和SCCM2007SP1的补丁安装。
服务器端补丁
服务器补丁命名规则
服务器补丁文件命名格式如下:
SCCM-2007<REL>-KB<KBnumber>-<platform>-<language>.exe
REL – 代表产品的release, 可能为RTM或者是SP1
Platform – 为x86 或者是x64
Language –为SCCM产品的语言版本
每一个语言的补丁都有两个文件,分别适合于x86或者是x64平台,用户需要自己判断选择对应的文件,如果选择错误的平台,安装会提示如下错误信息:
服务器补丁 安装位置
服务器端的补丁根据实际情况可以安装在如下的位置:
- 主站点(Primary Site)服务器
- 辅助站点(Secondary Site)服务器
- 远程Provider
- 远程控制终端(Remote Admin Console) 计算机
服务器补丁的种类及详细介绍
-- 主站点(Primary Site)/辅助站点(Secondary Site)/远程控制终端补丁(Remote Admin Console)
在安装补丁的时候确保关闭SCCM控制终端应用程序,而且会可能影响某些服务,安装程序会自动侦测到需要停止的服务,并通知用户(如下图)
-- 数据库补丁
数据库的补丁只能安装在主站点(Primary Site)服务器上,用户可以选择在安装的时候更新数据库, 也可以不立即更新(如下图),SQL脚本安装在<SMS_ROOT>\logs\KBxxxxxx\update.sql(xxxxxx – 代表KB号), 用户可以自己执行SQL脚本来更新数据库,
注意:
在安装数据库补丁之前,建议用户备份数据库。
补丁程序能够得到数据库服务器及数据库名称,即使是远程数据库,也可以自动连接并更新相应的数据库,用户不用担心数据库服务器的实际位置,只需在主站点上安装就可以了。
-- 站点角色(Site Role) 补丁
在SCCM产品里,有很多站点角色,比如Management Point等,这些角色可以有多个,或者可以安装在不同的计算机上,对于这些补丁,我们也只需要安装在主站点服务器上,在安装的时候会提示用户是否需要重置(reset)这些站点角色(见下图),主站点服务器的应用程序会帮助我们更新所有受影响的站点角色,用户不用关心这些站点在哪儿。
-- 远程Provider补丁
通常情况下Provider是和主站点在通一台计算机上,但有时候可能会安装在远程的计算机上,这种情况下,用户需要自己找到安装Provider的服务器,并安装补丁程序来更新远程的Provider。
-- 客户端补丁
客户端的补丁首先也是只能在主站点安装,然后再播发的相应的客户端,在下面的章节会有详细介绍
补丁卸载
所有非数据库更新的补丁都是可以卸载的,用户可以在“添加/删除程序”中可以看到如下的补丁列表并卸载补丁
注意:
数据库更新的补丁是不提供卸载的。
卸载的时候需要考虑安装的顺序,必须是最后安装的补丁最先卸载,不然会可能对产品有不可预见的错误,在实际操作中,卸载程序会有如下类似警告提示:
客户端补丁
System Center Configuration Manager 2007 客户端是通过Client.msi安装的,客户端的补丁是以MSP文件的形式更新客户端的。在System Center Configuration Manager 2007中,MSP文件的命名规则如下(KBxxxxxx是该补丁对应的KB编号):
· SCCM2007AC-RTM-KBxxxxxx-x86.msp (Configuration Manager 2007 RTM)
· SCCM2007AC-SP1-KBxxxxxx-x86.msp (Configuration Manager 2007 SP1)
客户端补丁安装
客户端的补丁是在服务器端安装的。安装过程中,补丁程序会提示用户是否创建数据包(Packages)和程序(Programs),缺省情况同意创建。如图所示:
然后,会显示创建的数据包和程序的名称,用户可以自定义数据包和程序的名称。如图所示:
安装完成后,会在服务器上创建一个数据包和程序。
缺省情况下,数据包的名称是:
KBxxxxxx - Advanced Client Hotfix - <site> ;
程序的名称是:
KBxxxxxx – Advanced Client Patch Install 。
如图所示:
对应的MSP文件保存在:
..\Microsoft Configuration Manager\Client\i386\hotfix\KBxxxxxx
对应的安装说明文件(ACReadme.txt)保存在:
..\Microsoft Configuration Manager\Logs\KBxxxxxx
如果用户在安装补丁的时候没有创建数据包和程序,可以根据ACReadme.txt自己手工在各个客户端安装MSP文件。
然后,为该补丁创建的数据包和程序创建一个播发(Advertisements),发布到客户端。客户端安装以后,会在注册表里面记录该MSP的信息。以System Center Configuration Manager 2007 SP1为例。如果SCCM2007AC-SP1-KBxxxxxx-x86.msp在客户端安装以后,注册表中将创建一个新的键:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Configuration Manager Client\4.00.6221.1000\SCCM2007AC-SP1-KBxxxxxx-x86.msp,该键下面有两个键值:
· Description :对该MSP文件的描述
· PatchID: 该补丁的ID
Troubleshooting
MSP 运行时候会在%TEMP%目录下创建日志文件(SCCM2007AC-KBxxxxxx-x86.msp.log)。用户可以从这个文件中获取安装的具体情况和结果。
用户也可以通过客户端的execmgr.log获取该补丁创建的数据包和程序的安装情况。
MSP 在客户端安装后,用户可以到客户端安装目录(..\SMS_CCM)检查相应的文件版本是否更新。例如,如果本次补丁更新了AA.DLL文件,用户可以检查AA.DLL文件的版本和日期是否跟KB文章中描述的一致。
另外,用户也可以到控制面板打开“Configuration Manager”项,在“Components”页检查对应组件的版本是否正确。
客户端补丁卸载
客户端的补丁信息在控制面板里面是看不到的,所以,客户端补丁的卸载需要通过命令行实现。具体的命令如下:
Msiexec /package <productcode> /uninstall <PatchGUID> REINSTALL=All REINSTALLMODE=maus
<productcode> 是System Center Configuration Manager 2007 RTM或者System Center Configuration Manager 2007 SP1发布时候的Client.msi的productCode,例如:{CE6A85D8-D6B9-479A-9FE9-A06E56881E61}。用户可以用ORCA工具打开Client.msi查询,也可以在客户端的注册表里面查询,即在注册表HKEY_LOCAL_MACHINE\Software\Microsoft\SMS\Mobile Client下面查询ProductCode键值。而 <PatchGUID> 可以在上文提到的注册表键:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Configuration Manager Client\4.00.6221.1000\SCCM2007AC-SP1-KBxxxxxx-x86.msp 下面查询PatchID。
例如,如果用户在System Center Configuration Manager 2007 SP1英文环境里面安装了KB955842对应的补丁SCCM2007-SP1-KB955842-X86-ENU.exe,如果用户想卸载这个客户端的补丁,可以在客户端的命令行窗口里面,输入如下命令:
msiexec /package {CE6A85D8-D6B9-479A-9FE9-A06E56881E61} /uninstall {6844897A-3EF6-4FBB-9A14-A5C67379D7C0} REINSTALL=All REINSTALLMODE=maus
值得注意的是,补丁卸载以后必须重新启动客户端的电脑才能生效。
--倪黔东(QianDong Ni),汪伟涛(Weitao Wang)