本文解决的是客户端加入2008域失败的问题。最后解决的方法很简单,主要是想写一下分析解决问题的流程。
<?XML:NAMESPACE PREFIX = O />

 

问题描述:

客户端是WinXP SP3。域刚刚由2003 upgrade到了Windows2008。一台GC、一台DC都是2008
Ghost服务器是Symantec Ghost Solution Suite 2.02。当使用到加入域的Configuration时会出现一个WARNING,提示为Failed  to join domain  :系统检测到危害安全的尝试。请与您能与对您进行身份验证的服务器联系。结果加入域失败
090218125225.jpg
 
分析问题:

1:在域还没升级到2008之前,用Ghost加入域没有问题,而且升级完成后的Ghost服务器没有做任何改动,大概可以判断问题不是处在Ghost这边
2:加入域的前几个过程都是成功的,包括常出问题的Create machine account过程。说明Ghost服务使用的账户在域中的权限没有问题
3:再回到报错信息的本身,提到了“身份验证”在加入域的过程中涉及到了身份验证,无非就是客户端域AD服务器之间的身份验证,本身客户端没有变化,判断问题处在Windows2008域服务器本身,而且和身份验证的服务有关。

 

解决问题的过程

 

1:使用Ghost中的Console service account账户GHOSTVMGHOST01手动加如域,成功。排除了权限的问题
2:将Windows2008域控的防火墙关闭,问题依旧出现,看来不是防火墙的问题。
3Google搜索failed to join domain关键词,没有什么有用信息
4:直接来到Symantec官方论坛[url]https://forums.symantec.com/syment/[/url]
搜索failed to join domain终于找到有用的信息
090218125306.jpg
 
5:查看其中的两个帖子
原来有人遇到跟我一样的问题,按帖子说明的,大概判断问题出在客户端使用NETLOGON服务登录2008域时,默认情况下不允许使用较旧的加密算法。详情参见
6:查看客户端加域时留下的错误日志信息,位置在c:\windows\Debug\NetSetup.LOG

 

这是用Ghost加域的日志,加域失败
02/17 09:07:09 -----------------------------------------------------------------
02/17 09:07:09 NetpDoDomainJoin
02/17 09:07:09 NetpMachineValidToJoin: 'ZX40553'
02/17 09:07:09 NetpGetLsaPrimaryDomain: status: 0x0
02/17 09:07:09 NetpMachineValidToJoin: status: 0x0
02/17 09:07:09 NetpJoinDomain
02/17 09:07:09       Machine: ZX40553
02/17 09:07:09       Domain: elab.org\VmAD04.elab.org
02/17 09:07:09       MachineAccountOU: (NULL)
02/17 09:07:09       Account: (NULL)
02/17 09:07:09       Options: 0xc1
02/17 09:07:09       OS Version: 5.1
02/17 09:07:09       Build number: 2600
02/17 09:07:09       ServicePack: Service Pack 3
02/17 09:07:09 NetpValidateName: checking to see if 'elab.org' is valid as type 3 name
02/17 09:07:10 NetpCheckDomainNameIsValid [ Exists ] for 'elab.org' returned 0x0
02/17 09:07:10 NetpValidateName: name 'elab.org' is valid for type 3
02/17 09:07:10 NetUseAdd to \\VmAD04.elab.org\IPC$ returned 1326
02/17 09:07:10 Trying add to  \\VmAD04.elab.org\IPC$ using NULL Session
02/17 09:07:10 NetpJoinDomain: status of connecting to dc '\\VmAD04.elab.org': 0x0
02/17 09:07:10 NetpJoinDomain: Passed DC '\\VmAD04.elab.org' verified as DNS name '\\VmAD04.elab.org'
02/17 09:07:10 NetpGetLsaPrimaryDomain: status: 0x0
02/17 09:07:10 NetpGetDnsHostName: Read NV Hostname: ZX40553
02/17 09:07:10 NetpGetDnsHostName: PrimaryDnsSuffix defaulted to DNS domain name: elab.org
02/17 09:07:10 NetpLsaOpenSecret: status: 0xc0000034

02/17 09:07:10 Failed to validate machine account for ZX40553 against \\VmAD04.elab.org: 0xc0000388

02/17 09:07:10 NetpJoinDomain: w9x: status of validating account: 0x4f1

02/17 09:07:10 NetpJoinDomain: initiaing a rollback due to earlier errors
02/17 09:07:10 NetpLsaOpenSecret: status: 0x0
02/17 09:07:10 NetpJoinDomain: rollback: status of deleting secret: 0x0
02/17 09:07:10 NetpJoinDomain: status of disconnecting from '\\VmAD04.elab.org': 0x0
02/17 09:07:10 NetpDoDomainJoin: status: 0x4f1

 

 

这是手动加域的日志,加域成功。使用的账户和Ghost的相同
02/17 09:38:43 -----------------------------------------------------------------
02/17 09:38:43 NetpValidateName: checking to see if 'elab.org' is valid as type 3 name
02/17 09:38:43 NetpCheckDomainNameIsValid [ Exists ] for 'elab.org' returned 0x0
02/17 09:38:43 NetpValidateName: name 'elab.org' is valid for type 3
02/17 09:39:09 -----------------------------------------------------------------
02/17 09:39:09 NetpDoDomainJoin
02/17 09:39:09 NetpMachineValidToJoin: 'ZX40553'
02/17 09:39:09 NetpGetLsaPrimaryDomain: status: 0x0
02/17 09:39:09 NetpMachineValidToJoin: status: 0x0
02/17 09:39:09 NetpJoinDomain
02/17 09:39:09       Machine: ZX40553
02/17 09:39:09       Domain: elab.org
02/17 09:39:09       MachineAccountOU: (NULL)
02/17 09:39:09       Account: elab\GHOSTVMGHOST01
02/17 09:39:09       Options: 0x25
02/17 09:39:09       OS Version: 5.1
02/17 09:39:09       Build number: 2600
02/17 09:39:09       ServicePack: Service Pack 3
02/17 09:39:09 NetpValidateName: checking to see if 'elab.org' is valid as type 3 name
02/17 09:39:09 NetpCheckDomainNameIsValid [ Exists ] for 'elab.org' returned 0x0
02/17 09:39:09 NetpValidateName: name 'elab.org' is valid for type 3
02/17 09:39:09 NetpDsGetDcName: trying to find DC in domain 'elab.org', flags: 0x1020
02/17 09:39:09 NetpDsGetDcName: found DC '\\VMAD03.elab.org' in the specified domain
02/17 09:39:09 NetpJoinDomain: status of connecting to dc '\\VMAD03.elab.org': 0x0
02/17 09:39:09 NetpGetLsaPrimaryDomain: status: 0x0
02/17 09:39:09 NetpGetDnsHostName: Read NV Hostname: ZX40553
02/17 09:39:09 NetpGetDnsHostName: PrimaryDnsSuffix defaulted to DNS domain name: elab.org
02/17 09:39:09 NetpLsaOpenSecret: status: 0xc0000034
02/17 09:39:09 NetpGetLsaPrimaryDomain: status: 0x0
02/17 09:39:09 NetpLsaOpenSecret: status: 0xc0000034
02/17 09:39:09 NetpJoinDomain: status of setting machine password: 0x0
02/17 09:39:10 NetpGetComputerObjectDn: Cracking DNS domain name elab.org/ into Netbios on \\VMAD03.elab.org
02/17 09:39:10 NetpGetComputerObjectDn: Crack results:         name = ELAB\
02/17 09:39:10 NetpGetComputerObjectDn: Cracking account name ELAB\ZX40553$ on \\VMAD03.elab.org
02/17 09:39:10 NetpGetComputerObjectDn: Crack results:         (Account already exists) DN = CN=ZX40553,CN=Computers,DC=elab,DC=org
02/17 09:39:10 NetpModifyComputerObjectInDs: Initial attribute values:
02/17 09:39:10                 DnsHostName  =  ZX40553.elab.org
02/17 09:39:10                 ServicePrincipalName  =  HOST/ZX40553.elab.org  HOST/ZX40553
02/17 09:39:10 NetpModifyComputerObjectInDs: Computer Object already exists in OU:
02/17 09:39:10                 DnsHostName  =
02/17 09:39:10                 ServicePrincipalName  =
02/17 09:39:10 NetpModifyComputerObjectInDs: Attribute values to set:
02/17 09:39:10                 DnsHostName  =  ZX40553.elab.org
02/17 09:39:10                 ServicePrincipalName  =  HOST/ZX40553.elab.org  HOST/ZX40553
02/17 09:39:10 ldap_unbind status: 0x0
02/17 09:39:10 NetpJoinDomain: status of setting DnsHostName and SPN: 0x0
02/17 09:39:10 NetpGetLsaPrimaryDomain: status: 0x0
02/17 09:39:10 NetpSetLsaPrimaryDomain: for 'ELAB' status: 0x0
02/17 09:39:10 NetpJoinDomain: status of setting LSA pri. domain: 0x0
02/17 09:39:10 NetpJoinDomain: status of managing local groups: 0x0
02/17 09:39:11 NetpJoinDomain: status of setting netlogon cache: 0x0
02/17 09:39:11 NetpJoinDomain: status of setting ComputerNamePhysicalDnsDomain to 'elab.org': 0x0
02/17 09:39:11 NetpUpdateW32timeConfig: 0x0
02/17 09:39:11 NetpJoinDomain: status of disconnecting from '\\VMAD03.elab.org': 0x0
02/17 09:39:11 NetpDoDomainJoin: status: 0x0

 

对比两个日志发现问题出现在
02/17 09:07:10 NetpLsaOpenSecret: status: 0xc0000034

02/17 09:07:10 Failed to validate machine account for ZX40553 against \\VmAD04.elab.org: 0xc0000388

02/17 09:07:10 NetpJoinDomain: w9x: status of validating account: 0x4f1

分析一下,确定是在NetpLsaOpenSecret时就出现错误,字面的理解就是客户端要与AD建立安全连接失败。
7:继续翻官方的帖子发现,在2008的域控的默认域的组侧略中,有关于NETlogon服务的设置,而且默认是禁止使用旧版本加密协议连接。位置如下
Default Domain Controller Policy-->Computer Configuration-->Policies-->Administrative Templates-->System-->Net Logon

将允许与 windwos NT 4.0 兼容的加密算法策略设置为启用

090218125332.jpg
 
8 :重新 Ghost 加域,成功

可以看出 GSS2.02 使用了低于 Windows2008 默认级别的加密算法,导致加域过程中,域服务器拒绝接受 ghost 的验证信息,从而加域失败。

 

总结:

1 :重视报错信息,尽可能收集足够的日志,然后分析

2 :选好关键词,进行高效搜索

3 :各大公司的官方论坛或者在线支持,问题反映是比较全面的。而且最好去查英文官方

4 :适当记录解决问题的过程,以作备查、共享