客户端的安装调试简析

ConfigMgr  日常工作中经常碰到的一个问题就是客户端安装完成以后无法正常工作,这里我特指一些site configuration无法通过policy的形式到达客户端.

 这往往涉及到很多不同的因素. 在这篇博文里面我将会介绍几类常见的导致这种情况的原因。并且共享给大家一些简单的调试方法。 

 首先我们来看一下当客户端的安装完成但还没有正常工作的时候,我们会在客户机上看到什么 

clip_image002

 clip_image004

  再让我们看看一个能够正常工作的客户端在客户机上看起来又是怎么样的 

clip_image005

 

clip_image006

 

 我们注意到Actions 这一页里面,一个正常工作的客户端比刚装好的客户端多了许多不同的Action 项目。而在Advanced 这一页里面,Site Code这一项也由空白变为了一个三位数的字母。这些区别意味着一个正常工作的客户端需要从MP(Management Point)获取一些配置信息,也就是我们常说的policy。 

 为了拿到配置信息,客户端需要完成下面几个主要步骤。

 1.  
1. 成功获取Site Code 并寻找到正确 MP

2.联系MP并完成客户端机器注册

 下面我针对这几个主要步骤做一些常见问题的分析和调试 

1.   获取Site Code并寻找到正确MP的常见问题

a. DNS  配置错误,导致客户端无法正确解析域服务器(Domain AD).

 在这种情况下,客户机ping 不到AD server,需要正确设置DNS服务器地址来解决此问题或者求助网络管理员。

b. MP 安装不正确.
这种情况下,往往需要域管理员 (Domain Administrator)检查AD才能确定。如下图

clip_image008

  如果MP安装成功,我们能够在Active Directory Users and Computers 的Domain \System\System Management路径下看到SMS-MP-<SiteCode>-<MP machine>这样的一条记录,如果你没找到这个记录,那就意味着MP安装过程出现了问题。这时候你需要查看ConfigMgr服务器上的MP安装记录。

c. Site Boundary 
没有正确定义,对于自动检测Site Code的客户端来说,Boundary定义是很重要的,因为客户端会通过AD里面的Boundary定义来最终确定需要和哪个Site的MP通讯。上图显示的Domain\System\System Management 路径下的内容里不包含Boundary信息。一个正确定义了Boundary的ConfigMgr 会在Directory Users and Computers的Domain\System\System Management 路径下添加若干条Boundary 信息(AD site Name boundary除外)。

 这种情况下你可以通过查看客户端的LocationServices.log来确认问题的根源。这种情况下常见的错误会显示如下 

LSGetAssignedSiteFromDirectories LocationServices 5/14/2009 10:55:33 PM

LSGetGPSiteCode LocationServices 5/14/2009 10:55:33 PM

LSGetGPSiteCode: Failed to Get Site Code from Group Policy Reg key [Software\Microsoft\SMS\Mobile Client] LSJoinedToADDomain LocationServices 5/14/2009 10:55:33 PM

LSGetAssignedSiteFromAD LocationServices 5/14/2009 10:55:33 PM

 LSGetADSiteName LocationServices 5/14/2009 10:55:33 PM

Current AD site of machine is MyADSite LocationServices 5/14/2009 10:55:33 PM

LSGetAssignedSiteFromSLP LocationServices 5/14/2009 10:55:33 PM

LSGetSLP LocationServices 5/14/2009 10:55:33 PM

LSGetSLPFromRegistry LocationServices 5/14/2009 10:55:33 PM

LSGetSLPFromRegistry: Failed to get SLP from Registry (80004005) LocationServices

LSJoinedToADDomain LocationServices 5/14/2009 10:55:33 PM

Attempting to retrieve SLPs from AD LocationServices 5/14/2009 10:55:33 PM

LSGetSLPFromAD LocationServices 5/14/2009 10:55:33 PM

LSWinsResolveSMSName LocationServices 5/14/2009 10:55:33 PM

Failed to resolve 'SMS_SLP' to IP address from WINS (0x00000000) LocationServices 5/14/2009 10:55:39 PM

LSGetSLP : Failed to resolve SLP from WINS, is it published LocationServices 5/14/2009 10:55:39 PM

LSGetAssignedSiteFromSLP : Unable to get the list of SLPs LocationServices 5/14/2009 10:55:39 PM

 

下图是正确定义了Boundary的Site

clip_image010

d. 除了上面所提到的部分,还有一些IIS设置的问题也会引起客户端无法与MP通讯。大家可以通过查看TechNet上的相关文章加以分析,由于这部分更多的是关于IIS的安全认证,端口设置,访问权限设置,就不在这里赘述了。

 
联系MP并完成客户端机器注册的常见问题

在完成了寻找site code和MP的工作后,客户端还需要完成注册的任务,从而建立起服务器端和客户端的一种信任关系,为接下来的配置做准备。

 这里分为两种不同的情况,第一种为Mixed Mode下的注册。第二种为Native Mode下的注册。 

 两种注册都需要使用客户机上的certificate作为注册的凭证,所不同的是前者的certificate是self signed也就是无CA(Certificate Authority)认可的, 而后者的certificate则是需要一个服务器端和客户端所在的域所信任的CA签发(issue)。 

a.  常见问题1. 系统时间不一致。 这是我们在日常工作中经常碰到的一个问题。ConfigMgr的架构要求我们将服务器和客户端放置于同一个时间之下,这里指的是将服务器和客户机时间转换为UTC时间时两者的一致性,而不是指机器本地时间的一致性。一个简单的方法就是察看客户机和服务器的系统时间,并且将两者的时区调成一致,如果这时候的系统本地时间不同,那就意味着UTC时间也不一致。

b.  常见问题2. 客户端版本高于服务器端版本。

c.  常见问题3. 客户端缺失certificate。 在这种情况下需要查看本地机器的certificate store,路径为LocalMachine/SMS/Certificates,如果没有发现任何SMS certificate,那你就需要重新申请certificate(native mode下)或者重新安装你的客户端(mixed mode下)。 

下图为正确的certificate store

clip_image012

d.

常见问题4. Certificate过期。 查看Certificate store中的Certificate有效期,如果certificate过了有效期,也会引起MP拒绝客户端注册。 

 为了确认客户端注册成功,我们可以查看客户端的程序记录ClientIDManagerStartup.log。 

 如下记录表示该客户端成功注册完毕。 

RegTask: Starting registration, attempt 1. ClientIDManagerStartup 5/14/2009 11:54:13 PM

RegTask: Initial backoff interval: 1 minutes ClientIDManagerStartup 5/14/2009 11:54:14 PM

RegTask: Reset backoff interval: 257 minutes ClientIDManagerStartup 5/14/2009 11:54:14 PM

GetSystemEnclosureChassisInfo: IsFixed=TRUE, IsLaptop=FALSE ClientIDManagerStartup 5/14/2009 11:54:15 PM

Computed HardwareID=2:DA8694C1A87469229D391BD546E673571A3F24E1

   Win32_SystemEnclosure.SerialNumber=9797-0800-1668-5799-7798-4730-39

   Win32_SystemEnclosure.SMBIOSAssetTag=8060-7573-0552-0546-2282-9167-93

   Win32_BaseBoard.SerialNumber=9797-0800-1668-5799-7798-4730-39

   Win32_BIOS.SerialNumber=9797-0800-1668-5799-7798-4730-39

   Win32_NetworkAdapterConfiguration.MACAddress=00:1D:D8:B7:1E:9 ClientIDManagerStartup 5/14/2009 11:54:15 PM

RegTask: Client is not registered. Sending registration request... ClientIDManagerStartup 5/14/2009 11:54:15 PM

RegTask: Client registration is pending. ClientIDManagerStartup 5/14/2009 11:54:18 PM

RegTask: Client is pending registration. Sending confirmation request... ClientIDManagerStartup 5/14/2009 11:54:18 PM

RegTask: Client is pending registration. Sending confirmation request... ClientIDManagerStartup 5/14/2009 11:55:18 PM

RegTask: Client is registered. ClientIDManagerStartup 5/14/2009 11:55:18 PM

 

 本文简单介绍了几种客户端的安装调试方法,由于篇幅的关系无法进一步深入的分析。希望这些方法对初次涉及ConfigMgr的朋友有所帮助。

-- 沈青松