“当尝试连接域控制器时发生如下错误:高速缓存中找不到目录属性”的解决

我不知道如何用一个标题来描述这个问题,在未找到解决办法之前,我同样不清楚这个问题的原因。

上周五为A厂新建了一个站点+DC,这家公司在全国有很多厂,所以采取了简单的拓扑结构:一个域中60+站点,每个厂一个站点,各厂站点仅与公司本部的站点相互复制。

在折腾完A厂站点的网络、服务器的联通性后,我便开始踏踏实实的DCPROMO。由于大部分站点的都配置防火墙策略,所以A-DC只能正常访问防火墙开通的公司本部站点GSBB-DC,如果要它自己尝试,那是1/63的概率。所以加域 就需要使用命令来特别指定一台域控:
netdom join %computername% /domain:group.com.cn\GSBB-DC /userd:group\joindomain /passwordd:group123
之后安装AD、重启、新建站点、站点连接、子网都没有发现异常。

但是以上操作我做了两遍,因为后来,站点GSBB不肯从站点A复制。

踏踏实实≠≠ 一切顺利

问题现象以及Toubleshooting Review:

  • 连接GSBB-DC的站点与服务,在A-DC的NTDS Settings中检查复制拓扑,错误“当尝试连接域控制器时发生如下错误:高速缓存中找不到目录属性”

    clip_image001
    这错误不禁让人想打开adsiedit去检查此NTDS Settings的属性。

  • 由于不能自动生成站点连接,便手动创建一个站点连接,右键立即复制,错误“缺少复制的名称上下文”,检查此站点连接属性,复制的名称上下文中仅有主域区域,没有ForestDnsZones.Domain.COM.CN, 和DomainDnsZones:

    image

  • 使用repadmin /showrepl ,错误“DS-ReplicatesNCReason  1753 (0x6d9):终结点映射器中没有更多的终结点可用。”
  • 用adsiedit检查A-DC的属性、连接,发现CN=A-DC下居然缺少了NTFRS Subscriptions,于是我就照葫芦画瓢了一个,但是毕竟不是原装的,以上错误依然出现。
  • 发现sysvol下仅生成了二级子目录,并没policies、scripts和其他内容。

    \SYSVOL
    \SYSVOL\domain
    \SYSVOL\staging\domain
    \SYSVOL\staging areas
    \SYSVOL\domain\Policies
    \SYSVOL\domain\scripts
    \SYSVOL\SYSVOL

  • 手动建立了netshare和sysvol共享,手动复制系统日志中提示找不到的policies到 \SYSVOL\domain\Policies,不要笑我傻,该试的都要试下嘛,不过结果肯定是sorry。。
  • How to rebuild the SYSVOL tree and its content in a domain <http://support.microsoft.com/kb/315457/EN-US>这个方法pass了,我不可能在整个域上做这个操作,不过还是有参考价值
  • 我总觉得这个问题跟网络环境无关,但是作为可能因素,都要试一试。找网络管理员去看防火墙,他那有个NB的工具可以管理全国的防火墙。在A-DC上联的防火墙增加了1094,1025,1029,6004这几个端口,参考        Troubleshooting RPC Endpoint Mapper errors using the Windows Server 2003 <http://support.microsoft.com/kb/839880/>

    对比其他电厂并没单独开放这几个端口,所以这些端口98%不是问题所在,甚至于开放了所有端口,上述问题不想而知依然存在。。。


  • 由于上述不能理解的报错,我DCPROMO /REMOVE ,依然出了错误给我:::

    image

  • 如今只能使用DCPROMO /FORCEREMOVE,降级成功
  • 使用NTDSUTIL 的 Metadata Cleanup删除无效的DC,在站点与服务里删除无效的站点、站点连接,在ADSIEDIT里确认将A-DC相关item删除干净

     

  • 再次DCPROMO,确认A-DC被放置在默认站点Frist-Default-Site,不着急建立站点、站点连接,先将A-DC所在的子网关联到Frist-Default-Site
  • 在Frist-Default-Site检查复制拓扑,自动生成从A-DC复制的站点连接,但是噩梦还未结束,这个自动生成的仍然缺少名称上下文ForestDnsZones.Domain.COM.CN, 和DomainDnsZones.
  • 检查A-DC的windows\debug\dcpromoui.log,如下部分有些蹊跷,但并不明确,先贴上来:

    Enter State::GetDatabasePath C:\WINDOWS\NTDS   
    Enter State::GetLogPath C:\WINDOWS\NTDS        
    Enter State::GetSYSVOLPath C:\WINDOWS\SYSVOL   
    Enter FS::GetPathSyntax C:\WINDOWS\NTDS        
    false                                          
    Enter FS::CreateFolder C:\WINDOWS\NTDS         
      Enter FS::GetPathSyntax C:\WINDOWS\NTDS      
      false                                        
      Enter FS::GetRootFolder C:\WINDOWS\NTDS      
        Enter FS::GetPathSyntax C:\WINDOWS\NTDS    
      HRESULT = 0x00000000                         
    Enter FS::GetPathSyntax C:\WINDOWS\NTDS        
    true                                           
    Enter EmptyFolder C:\WINDOWS\NTDS              
      Enter FS::IsFolderEmpty                      
        Enter FS::GetPathSyntax C:\WINDOWS\NTDS    
        true                                       
        Enter FS::GetFolder C:\WINDOWS\NTDS\*.*    
          Enter FS::SplitPath C:\WINDOWS\NTDS\*.*  
        Enter FS::Iterator::Start                  
          skipping dot path .                      
          skipping dot path ..                     
          Enter FS::Iterator::Finish               
    Enter FS::GetPathSyntax C:\WINDOWS\SYSVOL      
    false                                          
    Enter FS::CreateFolder C:\WINDOWS\SYSVOL       
      Enter FS::GetPathSyntax C:\WINDOWS\SYSVOL    
      false                                        
      Enter FS::GetRootFolder C:\WINDOWS\SYSVOL    
        Enter FS::GetPathSyntax C:\WINDOWS\SYSVOL  
      HRESULT = 0x00000000                         

  • 在A-DC上运行netdiag /v 以及 dcdiag /v,仔细检查生成的log。netdiag没有发现什么问题,终于dcdiag给力了:

    * Network Logons Privileges Check
    Unable to connect to the NETLOGON share! (\\LYWDC01\netlogon)
    [LYWDC01] An net use or LsaPolicy operation failed with error 1203, 无任何网络提供程序接受指定的网络路径。.
    ......................... LYWDC01 failed test NetLogons

  • HKEY_LOCAL_MACHINE\system\ccs\services\ntds\diagnostics\中将“replication events”“”等项设置为“5”,观察系统日志,看了半天也没找到给力的日志

    参考  Windows 2000 域控制器上丢失 SYSVOL 和 NETLOGON 共享疑难解答 <http://support.microsoft.com/kb/257338>

  • 不错,Netlogon和sysvol的共享有没有生成,但是我不能像上次那样那么天真了,既然手动创建netlogon share 无效,adsiedit手动添加缺少的项也无效,看来手动添加缺少的东西是不行了。
    • 多次的天真尝试并不是无用功,至少能让我嗅察出异常的端倪:现在看来是系统中跟sysvol相关的东西没有启动,检查系统服务完全正常,接下来的希望就在注册表了。

     

    • 对比正常DC和A-DC的注册表,首先关注的肯定是netlogon了,并且很容易就发现问题:A-DC的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters下SysvolReady项为0,将其改为正常值1clip_image001[1]
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters 下 TCP/IP Port项不存在,建立DWORD项 Tcp/Ip Port,值16进制c000
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NtFrs\Parameters 下RPC TCP/IP Port Assignment项不存在,建立DWORD项RPC TCP/IP Port Assignment,值16进制c001
    • 重启A-DC,检查A-DC的站点连接属性,ForestDnsZones.Domain.COM.CN, 和DomainDnsZones出现。
    • 等待15分钟左右,使用repadmin /showrepl检查结果终于为Last attempt @ 2010-12-01 16:26:34 was successful.
    • 最后不要忘为A厂建立站点,站点连接,对A-DC所在站点的NTDS Settings检查复制拓扑成功,生活是如此美好!

          解决这个问题花了我整整3个工作日,至此虽然表面上算是解决了,但是其原因仍不明朗。根据http://support.microsoft.com/kb/257338 ,  "After the Dcpromo.exe program has restarted the computer, FRS first attempts to source the SYSVOL from the computer identified in the "Replica Set Parent" registry key", netlogon的注册表项SysvolReady以及端口49152、49153的注册 应该是DCPROMO重启完、FRS第一次复制完就建立的,可是它并没有这么做,期间是什么阻止了它?很可能"Replica Set Parent" registry key"就没有建立成功。没有证据,一切都是猜测。待仔细研究日志再来探讨。

  • 你可能感兴趣的:(活动目录,域控,SYSVOL,netlogon,终结点映射器)