你帶回線上的 「 過時 」 的通用類別目錄伺服器後,可能仍會保留延遲物件

文章翻譯 文章翻譯
文章編號: 314282 - 檢視此文章適用的產品。
注意事項
這份文件適用於 Windows 2000。Windows 2000 支援的結束 2010 7 月 13,Windows 2000 End-of-Support Solution Center 是規劃您的遷移策略,從 Windows 2000 的起點。如需詳細資訊請參閱 Microsoft Support Lifecycle Policy]。
全部展開 | 全部摺疊

在此頁中

徵狀

你帶回線上網域控制站或通用類別目錄伺服器已離線一段很長的時間之後可能會發生任何下列問題:
  • 電子郵件不會傳給使用者,其使用者物件的網域之間移動。您將過期的網域控制站或通用類別目錄伺服器恢復連線後使用者物件的兩個執行個體會顯示在全域目錄。這兩個物件有相同的電子郵件位址,所以無法傳送電子郵件訊息。
  • 已不存在的使用者帳戶,仍會出現在全域通訊清單中]。
  • 已不存在的萬用群組仍會出現在使用者的存取權杖中。
如果網域控制站或通用類別目錄伺服器已離線超過刪除標記存留時間設定值,可能會發生這些問題。

發生的原因

一個網域控制站 (它可能也是通用類別目錄伺服器),已離線超過刪除標記存留期的值 (預設值是 60 天) 的設定可能會包含已刪除其他網域控制站或通用類別目錄伺服器的物件。此外,這些物件的刪除記錄可能已不存在。當你帶回線上過時的網域控制站時,無法進行物件刪除的通知。 如果任何物件修改它們會重新啟動,網域的其他成員。

延遲物件複寫到讀取/寫入命名內容,標準行為 (鬆複寫一致性) 是接收的網域控制站,來重新建立已不存在本機資料庫 (DIT) 中的物件。這些物件會再複寫回有效地重新建立已刪除的物件之原始網域控制站。 如果物件不應該在所有 (例如,如果物件已過期的網域控制站重新引入) 存在 Active Directory 中,您可以刪除具有標準的工具 (例如 [ADSIEdit 或 Active Directory 使用者及電腦嵌入式管理單元) 物件。

很容易就可以移除延遲物件的讀取/寫入命名內容。本文將告訴您,如何移除延遲物件已經有出現在通用類別目錄 (和因此唯讀) 命名內容。 如標記問題的更多有關,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
216993貨架的生命週期的 Active Directory 的系統狀態備份
如更多有關在讀取/寫入複本的延遲物件的命名內容,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
317097延遲物件防止發生 Active Directory 複寫

解決方案

服務套件資訊

如果要解決這個問題,取得最新的 Service Pack 為 Windows 2000。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
260910如何取得最新的 Windows 2000 Service Pack

Hotfix 資訊

附註才能安裝此 Hotfix 閱讀整個本文中的 < 其他相關資訊 > 一節。< 其他相關資訊 > 一節包含有關如何安裝和使用此 Hotfix 的重要資訊。

此 Hotfix 的英文版在檔案屬性 (或更新版本的檔案屬性) 如下列表格中所列。這些檔案的日期和時間為 Coordinated Universal Time (UTC)。當您檢視檔案資訊時,會將它轉換為當地時間。若要到 UTC 與當地時間差異使用在 [日期及時間中項目控制台中的 [時區] 索引標籤]。
   Date         Time   Version            Size    File name
   ------------------------------------------------------------
   16-Jan-2002  22:07  5.0.2195.4685     123,664  Adsldp.dll
   16-Jan-2002  22:07  5.0.2195.4762     130,320  Adsldpc.dll
   16-Jan-2002  22:07  5.0.2195.4016      62,736  Adsmsext.dll
   16-Jan-2002  22:07  5.0.2195.4797     356,112  Advapi32.dll
   16-Jan-2002  22:07  5.0.2195.4797      41,744  Basesrv.dll
   11-Dec-2001  03:33  5.0.2195.4571      82,704  Cmnquery.dll
   16-Jan-2002  22:07  5.0.2195.4141     133,904  Dnsapi.dll
   16-Jan-2002  22:07  5.0.2195.4379      91,408  Dnsrslvr.dll
   11-Dec-2001  03:33  5.0.2195.4534      41,744  Dsfolder.dll
   11-Dec-2001  03:33  5.0.2195.4534     156,944  Dsquery.dll
   11-Dec-2001  03:33  5.0.2195.4574     110,352  Dsuiext.dll
   16-Jan-2002  22:16  5.0.2195.4814     521,488  Instlsa5.dll
   16-Jan-2002  22:07  5.0.2195.4630     145,680  Kdcsvc.dll

   27-Nov-2001  01:33  5.0.2195.4680     199,440  Kerberos.dll
   16-Jan-2002  22:07  5.0.2195.4829     708,880  Kernel32.dll
   04-Sep-2001  17:32  5.0.2195.4276      71,024  Ksecdd.sys
   09-Jan-2002  19:50  5.0.2195.4814     503,568  Lsasrv.dll
   09-Jan-2002  19:50  5.0.2195.4814      33,552  Lsass.exe
   08-Dec-2001  01:05  5.0.2195.4745     107,280  Msv1_0.dll
   16-Jan-2002  22:07  5.0.2195.4594     306,960  Netapi32.dll
   16-Jan-2002  22:07  5.0.2195.4686     359,184  Netlogon.dll
   16-Jan-2002  22:07  5.0.2195.4797     476,432  Ntdll.dll
   16-Jan-2002  22:07  5.0.2195.4827     916,240  Ntdsa.dll
   15-Jan-2002  09:34  5.0.2195.4839   1,688,192  Ntkrnlmp.exe
   15-Jan-2002  09:36  5.0.2195.4839   1,687,744  Ntkrnlpa.exe
   15-Jan-2002  09:36  5.0.2195.4839   1,708,480  Ntkrpamp.exe
   15-Jan-2002  09:34  5.0.2195.4839   1,665,856  Ntoskrnl.exe
   16-Jan-2002  22:07  5.0.2195.4827     388,368  Samsrv.dll
   16-Jan-2002  22:07  5.0.2195.4583     128,784  Scecli.dll
   16-Jan-2002  22:07  5.0.2195.4600     299,792  Scesrv.dll
   16-Jan-2002  22:07  5.0.2195.4600      48,400  W32time.dll
   06-Nov-2001  20:43  5.0.2195.4600      56,592  W32tm.exe
   16-Jan-2002  22:07  5.0.2195.4827     125,712  Wldap32.dll
				
附註此 Hotfix 已經被取代成的積存修正程式。 如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
326797某些 Windows 2000 正在使用中目錄的 Hotfix 可能會導致衝突 S326797 為 Windows 2000

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。 這個問題已經先在 Windows 2000 Service Pack 3 中獲得修正。

其他相關資訊

此 Hotfix 加入支援移除延遲物件。 此程序需要擁有讀取/寫入複本之物件的網域控制站 objectGUID 和物件本身 objectGUID。如果您必須移除多個物件,判定的任何物件是否在父子式關聯性 (您可以判斷這從物件的分辨名稱)。如果發生這種情形,訂購 「 刪除,使其父物件之前刪除所有的子物件。

若要識別在哪個網域物件所在 (和從,判斷有物件的讀取/寫入複本的網域控制站的名稱) 最好是建立物件的辨別的名稱。藉由搜尋的名稱 (或部分的名稱),重複的使用者、 群組或通訊群組清單的使用 Ldp.exe 工具從支援工具,您可以執行這項動作:
  1. 啟動 Ldp.exe。
  2. 按一下 [連線] 功能表 連線
  3. 輸入通用類別目錄的名稱。輸入要連線至連接埠 3268。按一下 [確定]
  4. 在 [連線] 功能表上按一下 [繫結]。如果您目前的認證不足查詢的所有通用類別目錄內容,請輸入有效的認證。按一下 [確定]
  5. 按一下 [檢視] 功能表 樹狀結構。輸入樹系根的辨別的名稱。按一下 [確定]
  6. 以滑鼠右鍵按一下樹系根樹狀目錄] 清單中的,然後按一下 [搜尋]。
  7. 建立下列形式的篩選器:
    ([attribute] = [value])
    替代成適當的資料,[attribute] 和 [value]。 例如,若要建立篩選以傳回結果 sAMAccountName 屬性有設定為 [使用者帳戶,具名 testuser"的值的位置,鍵入 (sAMAccountName=testuser)篩選器] 方塊中。 cn]、 [userPrincipalName]、 [sAMAccountName]、 [名稱]、 [郵件] 及 [sn 屬性是很好的求職者尋找使用者物件。群組物件使用 cnsAMAccountName名稱。請注意您可以使用星號 (*) [value] 欄位中若有需要。

    如需有關 「 輕量型目錄存取通訊協定 (LDAP) 篩選條件語法的詳細資訊,請造訪下列 Microsoft 網站]:
    http://msdn2.microsoft.com/en-us/library/aa746475.aspx
  8. 按一下 [搜尋範圍 樹狀子結構
  9. 按一下 [選項]。在 [搜尋選項] 對話方塊移至最後的屬性控制。
  10. objectGUID; 附加至清單。 按一下 [確定]
  11. 按一下 [執行] 以執行查詢]。
  12. 檢視結果。您必須識別哪些顯示的物件應該從通用類別目錄移除。你已經找到有錯誤的物件的一個指示是該物件不存在於命名內容的讀取/寫入複本。
  13. 如果是需要改寫查詢,並重新執行。
  14. 如果您可以識別出延遲物件,請注意它的可辨別的名稱和 objectGUID。
取得物件的辨別的名稱之後識別該定義域它已位於藉由查看"dc ="辨別名稱的一部份。比方說 cn 網域 = FirstName LastName,cn = 使用者,dc = name1,dc = name2,dc = com 是 name1name2 com。接下來,找到網域控制站網域 (也可以是通用類別目錄伺服器)。

執行 repadmin /showreps dc-name 命令 (其中 dc-name 是您位於網域控制站的名稱)。Repadmin.exe 會包含與 「 支援工具。從輸出注意網域控制站 objectGuid 資訊:
C:\>repadmin DC /showreps 有些-
您 Site\some DC
DSA 選項: (無)
objectGuid 資訊: d1fa2207-ae85-466f-88fd-908f1c623ea7
安裝所有具有延遲物件的通用類別目錄伺服器上本文所述的 Hotfix。Hotfix 不需要在網域控制站上您識別為包含的延遲物件的讀取/寫入複本,除非它們也是包含延遲物件的通用類別目錄伺服器。您想要執行刪除作業的每一個通用類別目錄伺服器都必須具有您識別在網域控制站的網路連線。

對於一些物件

如果您有只有幾個物件和通用類別目錄,請依照下列步驟使用 Ldp.exe 刪除物件:
  1. 藉由使用企業系統管理員認證登入每個通用類別目錄伺服器的已安裝 Hotfix (而且其中包含的延遲物件的複本)。
  2. 啟動 Ldp.exe 並連接到本機網域控制站 (留下空白的 [伺服器] 方塊) 的通訊埠 389。
  3. 在 [連線] 功能表上按一下 [繫結]。保留所有的方塊空白 (您已經登入以企業系統管理員的身分)。
  4. 瀏覽] 功能表上按一下 [修改]。
  5. 將 [Dn] 方塊保持空白。
  6. 在 [屬性] 方塊中,輸入 RemoveLingeringObject
  7. 型別 < GUID = 做為值。
  8. 新增先前從命令 repadmin /showreps dcname 取得網域控制站的 GUID。

    附註在這個範例 dcname 會是裝載的延遲物件可寫入的命名內容的網域控制站。
  9. 附加 >: < GUID =. 省略該空格。
  10. 附加延遲物件的 GUID。
  11. 附加 >.
  12. 完成的值看起來應該像:
    <GUID=85dd0fee-de1b-461c-b9c0-27e9e8249484>: <GUID=eeeb70e5-4501-4895-a572-94a87e8f8ac7>
  13. 按一下 [取代] 作業,然後按一下 [Enter] 介面上。現在該命令會顯示在 [項目] 清單中。
  14. 按一下 [執行要求的 [執行]。Ldp.exe 視窗的右邊則會包含要求的結果。它看起來應該像這樣:
    正在呼叫修改...
    ldap_modify_s (ld '(空值)',[1] attrs) ;
    修改""。

對於許多的物件

如果您有許多的物件,若要刪除及許多通用類別目錄伺服器,可能是簡單的方法是使用下列指令碼:
  1. 下面將下列文字貼至一個名為 Walkservers.cmd 在新的資料夾中的新檔案:
    / f %%1 (伺服器 list.txt) 在執行 walkobjects
  2. 下列文字貼入一個名為 Walkobjects.cmd 的檔案:
    / f"delims = @"%%1 (物件 list.txt) 在執行 cscript //NoLogo MODIFYROOTDSE.VBS %1"%%i"> > update-%1.log


    附註這是單一的命令列。為了方便讀者閱讀此處插入分行符號。
  3. 下列文字貼入一個名為 Modifyrootdse.vbs 的檔案:
    '********************************************************************
    '*
    '* File:        MODIFYROOTDSE.VBS
    '* Created:     January 2002
    '* Version:     1.0
    '*
    '* Main Function: Writes Active Directory information to clean up 
    '* objects as per: Q314282.
    '* Usage: Modifyrootdse.vbs <TargetServer> <GUID PAIR>
    '* Parameter are fed into the script using a pair of batch files.
    '*
    '* Copyright (C) 2002 Microsoft Corporation
    '*
    '********************************************************************
    
    OPTION EXPLICIT
    ON ERROR RESUME NEXT
    
    Dim objDomain
    Dim ObjValue, strServerName, adsLdapPath 
    Dim i
    
    'Get the command-line arguments
        if Wscript.arguments.count <> 2 Then
         Print "Invalid Number of Parameters. Use with WalkServers.CMD and WalkObjects.CMD"
        WScript.quit
    End If
    
        strServerName = Wscript.arguments.item(0)
        ObjValue = Wscript.arguments.item(1)
    
        adsLdapPath = "LDAP://" & strServerName & "/RootDSE"
    
        Set objDomain = GetObject(adsLdapPath)
        If Err.Number <> 0 Then
            WScript.Echo "Error opening ROOTDSE. Error number is: " & Err.Number & ". Error description is: " & Err.Description & "."
        Set objDomain = Nothing
            WScript.quit
        End If
    
        objDomain.Put "RemoveLingeringObject", ObjValue
        objDomain.Setinfo
    
        If Err.Number = 0 Then
           WScript.Echo "Object " & ObjValue & " was removed."
    Else
           WScript.Echo "Object " & ObjValue & " could not be removed. Error number is: " & Err.Number & ". Error description is: " & Err.Description & "."
        End If
    WScript.Quit
    						
    注意: 如果您以手動方式啟動 Modifyrootdse.vbs 請確認以引號括住包含空格的任何參數。

  4. 建立清單的所有通用類別目錄伺服器包含延遲物件。將伺服器名稱放在同一個資料夾中的伺服器 list.txt 檔案中。使用完整格式的網域名稱來避免 DNS 尾碼搜尋。
  5. 您取得這些 GUID 組先前在此程序中加入一個物件 list.txt 檔案。加入一組每一行。使用下列語法:
    <GUID = DC GUID >: < GUID = 物件 GUID >
    範例項目看起來類似下列:
    <GUID=85dd0fee-de1b-461c-b9c0-27e9e8249484>: <GUID=eeeb70e5-4501-4895-a572-94a87e8f8ac7>
    這裡,第一個值是用來確認原始物件已不存在的可寫入的網域控制站的 GUID。第二個值是要移除延遲物件的 GUID。
  6. 執行查核行程 (Stack Walk) servers.cmd 檔案。指令碼產生伺服器 list.txt 檔中列出每一部通用類別目錄伺服器名稱為更新-server-name.log 的記錄檔。記錄檔包含針對每個要刪除的物件的線條。
請注意記錄檔中的錯誤不一定表示有問題因為延遲物件可能不存在於所有通用類別目錄伺服器上。不過,表單 「 作業被拒 」 或 「 作業錯誤 」 的錯誤訊息會指出之 GUID 或值的語法有問題。這些錯誤發生確認這些項目:
  • 請確定網域控制站的 GUID 是正確的 GUID,包含可寫入複本包含物件之網域的網域控制站。
  • 請確定物件 GUID 識別通用類別目錄 (唯讀) 命名內容中的延遲物件。
  • 請確認所有網域控制站與您在此程序中使用的通用類別目錄伺服器上已經都安裝 Hotfix。請確認您在安裝 Hotfix 之後,重新啟動伺服器。

若要修改許多環境中的延遲物件時執行 Walkservers.cmd 的錯誤訊息

物件 <GUID=ae856ce5-839a-4e44-b2fb-f37082ca2555>: 無法移除 <GUID=514f7510-451a-4297-8129-9b4c8ab79axx>。錯誤號碼是:-2147016672。錯誤描述是:。

原因

因為指令碼執行對網域控制站,且不包含含有延遲物件的可寫入磁碟分割 GUID,就會發生這個錯誤。 Ldp.exe 工具所確認延遲物件的位置。

範例

下列範例在延遲會造成錯誤訊息,要移除的物件位於 corp.company.local 網域。 不過,從物件 list.txt 檔案 <GUID=ae856ce5-839a-4e44-b2fb-f37082ca2555> 都與 company.local 網域沒有 corp.company.local 可寫入的資料分割的網域控制站相關聯。
ldap_search_s(ld, "DC=company,DC=local", 2, "(cn=User*)", attrList,  0, &msg)
Result <0>: (null)
Matched DNs: 
Getting 4 entries:
>> Dn: CN=User\, Joe,OU=Exec,OU=Corporate Users,DC=corp,DC=company,DC=local
	1> canonicalName: corp.company.local/Corporate Users/Exec/User, Joe; 
	1> cn: User, Joe; 
	1> description: CEO; 
	1> displayName: User, Joe; 
	1> distinguishedName: CN=User\, Joe,OU=Exec,OU=Corporate Users,DC=corp,DC=company,DC=local; 
	4> objectClass: top; person; organizationalPerson; user; 
	1> objectGUID: 814226ed-3414-4193-b96d-3a5ea4bf9351; 
	1> name: User, Joe; 
>> Dn: CN=User\, Joe,OU=Migration,DC=corp,DC=company,DC=local
	1> canonicalName: corp.company.local/Migration/User, Joe; 
	1> cn: User, Joe; 
	1> description: Disabled Account; 
	1> displayName: User, Joe; 
	1> distinguishedName: CN=User\, Joe,OU=Migration,DC=corp,DC=company,DC=local; 
	4> objectClass: top; person; organizationalPerson; user; 
	1> objectGUID: 514f7510-451a-4297-8129-9b4c8ab79axx; 
	1> name: User, Joe; 
執行下列命令,以取得 corp.company.local 網域中伺服器的 GUID:
repadmin /showreps DC-name
在這個命令 DC-name 會是 corp.company.local 網域中的網域控制站名稱的預留位置。 變更物件 list.txt 檔案中 GUID,以符合 corp.company.local 網域中網域控制站的 GUID。 在這個範例物件 list.txt 檔案會顯示為:
<GUID=c4fd9c30-b433-40a1-a862-9fdf1f804dc8> : <GUID=514f7510-451a-4297-8129-9b4c8ab79a7c>
第一個 GUID 是 corp.company.local 網域中網域控制站的 GUID。 第二個 GUID 是從 「 輕量型目錄存取通訊協定 (LDAP) 搜尋延遲物件 GUID。

您在執行查核行程 (Stack Walk) servers.cmd 時 [] 指令將現在順利完成-2147016672 無誤。

如果您無法使用這些方法來解決記錄檔中的錯誤,您可能遭遇不同的問題。連絡人 Microsoft 產品支援服務尋求其他協助。

如需有關如何取得對 Windows 2000 Datacenter Server Hotfix 的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
265173資料中心程式和 Windows 2000 Datacenter Server 產品
如更多有關如何安裝多個 Hotfix 時重新啟動一次按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
296861如何安裝多個 Windows 更新或 Hotfix,而只重新開機一次
如需有關如何一次安裝 Windows 2000 和 Windows 2000 的 Hotfix 的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
249149安裝 Microsoft Windows 2000 和 Windows 2000 的 Hotfix

屬性

文章編號: 314282 - 上次校閱: 2007年3月29日 - 版次: 8.7
這篇文章中的資訊適用於:
  • Microsoft Windows 2000 Server SP1
  • Microsoft Windows 2000 Server SP2
  • Microsoft Windows 2000 Service Pack 3
  • Microsoft Windows 2000 Server SP4
  • Microsoft Windows 2000 Advanced Server SP1
  • Microsoft Windows 2000 Advanced Server SP2
  • Microsoft Windows 2000 Advanced Server SP3
  • Microsoft Windows 2000 Advanced Server SP4
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server
關鍵字:?
kbmt kbhotfixserver kbqfe kbbug kbdirservices kbfix kbwin2000presp3fix kbwin2000sp3fix KB314282 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:314282
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com