“當嘗試連接域控制器時發生如下錯誤:高速緩存中找不到目錄屬性”的解決

我不知道如何用一個標題來描述這個問題,在未找到解決辦法之前,我同樣不清楚這個問題的原因。

上週五爲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"就沒有建立成功。沒有證據,一切都是猜測。待仔細研究日誌再來探討。

  • 發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章