Beibehaltene Objekte bleiben möglicherweise erhalten, nachdem Sie einen veralteten globalen Katalogserver wieder online geschaltet haben.

In diesem Artikel werden Verfahren zum Bereinigen von Objekten beschrieben, die wieder in AD eingeführt werden, nachdem Sie einen Offline-DC wieder online schalten.

Gilt für: Windows Server 2019, Windows Server 2016, Windows Server 2012 R2
Ursprüngliche KB-Nummer: 314282

Symptome

Sie schalten einen Domänencontroller (DC) oder einen globalen Katalogserver online, nachdem er für längere Zeit offline war. Nachdem es online geschaltet wurde, beobachten Sie eines oder mehrere der folgenden Probleme:

  • E-Mail-Nachrichten werden nicht an einen Benutzer übermittelt, dessen Benutzerobjekt zwischen Domänen verschoben wurde. Nachdem Sie den veralteten Domänencontroller oder den globalen Katalogserver wieder online geschaltet haben, werden beide Instanzen des Benutzerobjekts im globalen Katalog angezeigt. Beide Objekte verfügen über dieselbe E-Mail-Adresse, sodass E-Mail-Nachrichten nicht zugestellt werden können.
  • Ein Benutzerkonto, das nicht mehr vorhanden ist, wird weiterhin in der globalen Adressliste angezeigt.
  • Eine universelle Gruppe, die nicht mehr vorhanden ist, wird weiterhin im Zugriffstoken eines Benutzers angezeigt.
  • Andere DOmänencontroller oder globale Katalogserver protokollieren Ereignisse wie EventID 1084. Auf dem Server ist kein solches Objekt vorhanden. Weitere Replikationen werden auf den betroffenen DOmänencontrollern oder globalen Katalogservern blockiert.

Ursache

Diese Probleme können auftreten, wenn der DC oder der globale Katalogserver länger offline war als der Wert des Tombstone-Lifetime-Attributs von Benutzerobjekten.

Weitere Informationen zum Tombstone-Lifetime-Attribut finden Sie unter Tombstone-Lifetime-Attribut.

Das Tombstone-Lifetime-Attribut definiert die Anzahl von Tagen, bevor ein gelöschtes Objekt aus den Verzeichnisdiensten entfernt wird. Dies hilft beim Entfernen von Objekten von replizierten Servern und verhindert, dass Wiederherstellungsvorgänge ein gelöschtes Objekt wiedereinführen. Der Standardwert beträgt 180 Tage. Danach muss sich Active Directory nicht mehr an die Änderung erinnern.

Wenn ein Domänencontroller oder ein globaler Katalogserver länger offline ist als der Wert des Tombstone-Lifetime-Attributs , kann seine Kopie von Active Directory (oder des globalen Katalogs) Objekte enthalten, die auf den anderen DOmänencontrollern gelöscht wurden. Die anderen DOmänencontroller erinnern sich jedoch nicht mehr daran, dass die Objekte gelöscht wurden. Wenn Sie den Offlinedomänencontroller online schalten, synchronisiert er seine Kopie von Active Directory mit dem Rest der Domäne. Da die Informationen über die Löschungen verworfen wurden, repliziert der Domänencontroller die betroffenen Objekte (als "lingering objects" bezeichnet) zurück in den Rest der Domäne.

Im Allgemeinen verwendet AD DS ein Replikationsmodell mit loser Konsistenz, bei dem einige Namenskontexte (auch als Verzeichnispartitionen bezeichnet) lese-/schreibgeschützt sind. Wenn ein Domänencontroller, der ein repliziertes Objekt empfängt, das zu einem Namenskontext mit Lese-/Schreibzugriff gehört und dieses Objekt noch nicht in der lokalen Kopie der Verzeichnisinformationsstruktur (Directory Information Tree, DIT) vorhanden ist, erstellt der DC das Objekt. Während der Replikationsprozess fortgesetzt wird, wird das Objekt auf allen DOmänencontrollern in der Domäne erneut angezeigt.

DCs und globale Katalogserver können auch ein striktes Replikationskonsistenzmodell verwenden. Wenn der Domänencontroller bei diesem Modell ein repliziertes Objekt empfängt, das noch nicht im lokalen DIT vorhanden ist, beendet der DC den Empfang oder Das Senden replizierter Daten und protokolliert Ereignisse wie ereignis-ID 1084, "Es gibt kein solches Objekt auf dem Server.". Weitere Informationen zur strikten Replikationskonsistenz, einschließlich der Umstände, unter denen DOmänencontroller dieses Modell standardmäßig verwenden können, finden Sie unter KB-910205, Informationen zu beibehaltenen Objekten in einer Windows Server Active Directory Gesamtstruktur. Weitere Informationen zu Tombstone-Problemen finden Sie unter KB216993 Nützliche Haltbarkeit einer Sicherung des Systemzustands von Active Directory.

Lösung 1: Bestimmen, ob Active Directory über bleibende Objekte verfügt, und Vermeiden zukünftiger Objekte

KB-910205 erläutert verschiedene Möglichkeiten, um zu bestimmen, ob Ihr Active Directory-System über kumulierte Objekte verfügt. Kb-910205 beschreibt auch Schritte, die Sie ausführen können, um zu verhindern, dass sich bleibende Objekte ansammeln.

Lösung 2: Löschen von bleibenden Objekten

Wenn das Objekt überhaupt nicht in Active Directory vorhanden sein soll (z. B. wenn das Objekt von einem veralteten Domänencontroller wieder eingeführt wurde), können Sie die Objekte mit den Standardtools (z. B. ADSIEdit oder dem Active Directory-Benutzer und -Computer-Snap-In) löschen.

Es ist einfach, bleibende Objekte für Lese-/Schreibnamenskontexte zu entfernen. In Windows Server 2003 und höheren Versionen können Sie bleibende Objekte mithilfe des Befehls repadmin /removelingeringobjectsentfernen. Informationen zur Verwendung von RepAdmin finden Sie unter Active Directory-Replikationsereignis-ID 1388 oder 1988: Ein anhaltendes Objekt wird erkannt.

In diesem Artikel wird beschrieben, wie Sie objekte entfernen, die bereits in schreibgeschützten Benennungskontexten wie Verzeichnispartitionen auf globalen Katalogservern oder Read-Only-Domänencontrollern (RODCs) aufgetreten sind. Die im Abschnitt Weitere Informationen beschriebene Funktionalität ist in neueren Betriebssystemen weiterhin vorhanden und kann weiterhin hilfreich sein, um unerwartetes RepAdmin-Verhalten zu beheben.

Weitere Informationen

Diese Prozedur erfordert die objectGUID eines DC, der über eine Lese-/Schreibkopie des Objekts verfügt, und die objectGUID des Objekts selbst. Wenn Sie mehr als ein Objekt entfernen müssen, bestimmen Sie, ob sich eines der Objekte in einer beziehung über-/untergeordnet befindet (Sie können dies anhand der Distinguished Names der Objekte bestimmen). Wenn dies der Fall ist, ordnen Sie die Löschungen so an, dass alle untergeordneten Objekte vor ihren übergeordneten Objekten gelöscht werden.

Dieses Verfahren umfasst drei Hauptschritte, die Sie auf einem Computer ausführen müssen, der Zugriff auf die Gesamtstruktur hat (und Sie müssen ein Benutzerkonto verwenden, das über Administratorberechtigungen für die Gesamtstruktur verfügt):

  1. Rufen Sie den Distinguished Name und ObjectGUID des beibehaltenen Objekts ab.
  2. Identifizieren Sie einen Domänencontroller in der Objektdomäne.
  3. Löschen Sie die bleibenden Objekte. Wählen Sie eine der folgenden Methoden aus:
    • Löschen Sie einige objekte, die noch nicht mehr verwendet werden.
    • Löschen Sie eine große Anzahl von stehenden Objekten.

Wichtig

Jeder globale Katalogserver, auf dem Sie die Löschvorgänge (Schritt 3) ausführen möchten, muss über eine Netzwerkverbindung mit dem Domänencontroller verfügen, den Sie identifiziert haben (Schritt 2).

Informationen zur Problembehandlung finden Sie in den folgenden Abschnitten:

  • Fehlermeldung beim Ausführen von Walkservers.cmd viele objekte in der Umgebung zu ändern.
  • Fehlermeldung 87 beim Entfernen von objekten in der Umgebung.

Abrufen des Distinguished Name und ObjectGUID des beibehaltenen Objekts

Die beste Möglichkeit, die Domäne zu identifizieren, in der sich ein Objekt befindet (und von dort aus den Namen eines Domänencontrollers zu bestimmen, der über eine Lese-/Schreibkopie des Objekts verfügt), besteht darin, den distinguished Name des Objekts abzurufen. Sie können mit dem Tool Ldp.exe nach dem Namen (oder Teilen des Namens) des Objekts suchen. Gehen Sie dazu wie folgt vor:

  1. Starten Sie Ldp.exe.

    Wählen Sie in den meisten Versionen von Windows Ausführen starten> aus, und geben Sie ldp.exeein. In älteren Versionen von Windows (z. B. Windows Server 2003 SP1) ist dieses Tool als eines der Supporttools verfügbar.

  2. Wählen Sie Verbindung>Verbinden. Geben Sie im Feld Server den Namen eines globalen Katalogservers ein. Geben Sie im Feld Portden Wert 3268 ein, und wählen Sie dann OK aus.

  3. Wählen Sie Verbindungsbindung> aus. Geben Sie gültige Anmeldeinformationen ein, wenn Ihre aktuellen Anmeldeinformationen nicht ausreichen, um den gesamten Inhalt des globalen Katalogs abzufragen. Wählen Sie OK aus.

  4. Wählen Sie Struktur anzeigen> aus. Geben Sie den Distinguished Name des Gesamtstrukturstamms ein, und wählen Sie dann OK aus.

  5. Klicken Sie in der Strukturliste mit der rechten Maustaste auf den Stamm der Gesamtstruktur, und wählen Sie dann Suchen aus.

  6. Geben Sie im Feld Filter einen Filter ein, der das <Format attribut> = <wert> verwendet.

    Im Filtertext <stellt das Attribut> das zu durchsuchende Objektattribute dar, und <value> stellt die Kriterien dar, nach denen Sie suchen. Sie können ***** als Wildcardzeichen im Wert verwenden, und Sie können einen Ausdruck verwenden.

    Informationen zur LDAP-Filtersyntax (Lightweight Directory Access Protocol) finden Sie unter Suchfiltersyntax.

    Um z. B. Objekte zu finden, für die das sAMAccountName-Attribut den Wert testuser aufweist, geben Sie (sAMAccountName = testuser) in das Feld Filter ein. Um nach einem Benutzerobjekt zu suchen, sind die folgenden Attribute am nützlichsten:

    • cn
    • userPrincipalName
    • Samaccountname
    • name
    • Mail
    • sn

    Um nach einem Gruppenobjekt zu suchen, sind die folgenden Attribute am nützlichsten:

    • cn
    • Samaccountname
    • name
  7. Wählen Sie unter Bereichdie Option Unterstruktur aus.

  8. Wählen Sie das Feld Attribute und dann das Ende der Attributzeichenfolge aus. Geben Sie ein; objectGUID am Ende der Zeichenfolge.

    Screenshot des Suchfensters mit der Eingabe von ;objectGUID am Ende der Zeichenfolge im Feld Attribut.

    In einigen Versionen von Ldp müssen Sie Optionen auswählen, um das Feld Attribute anzuzeigen.

  9. Wählen Sie Ausführen aus, um die Abfrage auszuführen.

    Die Ergebnisse werden im Standard Ldp-Fenster angezeigt.

  10. Bestimmen Sie, welche objekte, die in den Ergebnissen aufgeführt sind, falls vorhanden aus dem globalen Katalog entfernt werden sollen. Ein Hinweis darauf, dass Sie ein ungültiges Objekt gefunden haben, ist, dass das Objekt nicht in einer Lese-/Schreibkopie des Namenskontexts vorhanden ist.

  11. Wenn die gesuchten Objekte nicht in den Abfrageergebnissen enthalten sind, formulieren Sie den Filter neu, und führen Sie die Suche erneut aus.

  12. Wenn Sie ein beibehaltendes Objekt identifiziert haben, notieren Sie sich die Werte seiner Attribute DN und objectGUID . Sie benötigen diese Werte später.

Identifizieren eines Domänencontrollers in der Objektdomäne

Der Wert des DN-Attributs des Objekts enthält die Domäne des Objekts. Wenn Sie die Domäne kennen, können Sie einen Domänencontroller oder einen globalen Katalogserver innerhalb der Domäne identifizieren. Gehen Sie hierzu wie folgt vor.

  1. Überprüfen Sie die dc= -Teile des DN-Werts . Kombinieren Sie die dc= -Teile, um den Domänennamen abzurufen.

    Wenn ein Objekt beispielsweise den DN-Wertcn=FirstName LastName,cn=Users,dc=name1,dc=name2,dc=com aufweist, befindet sich das Objekt in der name1.name2.com Domäne.

  2. Um einen Domänencontroller (oder einen globalen Katalogserver) in dieser Domäne zu suchen, öffnen Sie Active Directory-Benutzer und -Computer, öffnen Sie den Domänencontainer, und öffnen Sie dann den Container Domänencontroller.

  3. Öffnen Sie ein Eingabeaufforderungsfenster mit erhöhten Rechten, und geben Sie ein repadmin /showreps dc-name.

    Hinweis

    In diesem Befehl stellt dc-name den Computernamen des Domänencontrollers dar, den Sie in Schritt 2 identifiziert haben.

    In älteren Versionen von Windows (z. B. Windows Server 2003 SP1) ist RepAdmin als eines der Supporttools verfügbar.

    Repadmin erzeugt Ergebnisse, die den folgenden ähneln:

    Default-First-Site-Name\WS2016-DC-01 DSA Options: IS_GC Site Options: (none) DSA object GUID: <GUID> DSA invocationID: <invocationID>

  4. Beachten Sie den Wert der DSA-Objekt-GUID. Dies ist der objectGUID-Wert des DC.

Löschen von stehenden Objekten

Verwenden Sie die folgenden Methoden, um bleibende Objekte zu löschen.

Löschen einiger noch vorhandener Objekte von einigen globalen Katalogservern

Wenn Sie nur über wenige Objekte und globale Kataloge verfügen, führen Sie die folgenden Schritte aus, um die Objekte mithilfe von Ldp.exe zu löschen:

  1. Verwenden Sie Die Anmeldeinformationen des Unternehmensadministrators, um sich bei jedem globalen Katalogserver anzumelden, der eine Kopie des lingering-Objekts enthält.

  2. Starten Sie Ldp.exe, und stellen Sie eine Verbindung mit Port 389 auf dem lokalen Domänencontroller her (lassen Sie das Feld Server leer).

  3. Wählen Sie Verbindungsbindung> aus. Lassen Sie alle Felder leer (Sie sind bereits als Unternehmensadministrator angemeldet).

  4. Wählen Sie Durchsuchen>Ändern aus.

    Screenshot des Fensters

  5. Konfigurieren Sie die folgenden Einträge im Dialogfeld Ändern :

    1. Lassen Sie das Feld Dn leer.

    2. Geben Sie im Feld Attributden Namen RemoveLingeringObject ein.

    3. Geben Sie im Feld Werte einen Wert ein, der das folgende Format verwendet:

      <GUID=dcGUID>: <GUID=objectGUID>

      In diesem Wert stellt dcGUID die GUID des DC dar, die Sie in Schritt 2 dieses Abschnitts identifiziert haben, und objectGUID stellt die GUID des beibehaltenen Objekts dar, das Sie in Schritt 1 dieses Abschnitts identifiziert haben.

      Der Wert sollte in etwa wie folgt aussehen:

      <GUID=<GUID>>: <GUID=<GUID>>

      Wichtig

      Lassen Sie im Wert die Leerzeichen vor und nach dem Doppelpunkt nicht aus.

    4. Wählen Sie Vorgang>ersetzen und dann die EINGABETASTE aus.

      Im Feld Eintragsliste wird der vollständige Befehl angezeigt.

    5. Wählen Sie Ausführen aus.

      Die Ergebnisse werden im Standard Ldp-Fenster angezeigt und sollten wie folgt aussehen.

      Call Modify... ldap_modify_s(ld, '(null)',[1] attrs); "" wurde geändert.

Löschen einer großen Anzahl von objekten von mehreren globalen Katalogservern

Wenn Sie eine große Anzahl von objekten löschen müssen, können Sie skripts effizienter als manuell löschen. Führen Sie zum Erstellen solcher Skripts die folgenden Schritte aus:

  1. Erstellen Sie einen neuen Ordner, und erstellen Sie in diesem Ordner neue Dateien mit den folgenden Namen:

    • Walkservers.cmd
    • Walkobjects.cmd
    • Modifyrootdse.vbs
    • Server-list.txt
    • datei Object-list.txt
  2. Fügen Sie den folgenden Text in Walkservers.cmd ein:

    for /f %%j in (server-list.txt) do walkobjects %%j
    
  3. Fügen Sie den folgenden Text in Walkobjects.cmd ein:

    for /f "delims=@" %%i in (object-list.txt) do cscript //NoLogo MODIFYROOTDSE.VBS %1 "%%i" >>update-%1.log
    
  4. Fügen Sie den folgenden Text in Modifyrootdse.vbs ein:

    '********************************************************************
    '*
    '* 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
    

    Hinweis

    Wenn Sie Modifyrootdse.vbs manuell starten, stellen Sie sicher, dass Sie alle Parameter, die Leerzeichen enthalten, in Anführungszeichen einschließen.

  5. Erstellen Sie eine Liste aller vollqualifizierten Domänennamen der globalen Katalogserver und DCs, die die bleibenden Objekte enthalten, und fügen Sie die Liste dann in Server-list.txt ein. Verwenden Sie die vollqualifizierten Domänennamen, um DNS-Suffixsuchen zu vermeiden.

  6. Identifizieren Sie für jedes bleibende Objekt einen DC in der Objektdomäne, der keine Kopie des stehenden Objekts enthält. In der Regel handelt es sich dabei um einen Domänencontroller mit einem Namenskontext mit Lese-/Schreibzugriff, in dem Sie das beibehaltene Objekt manuell gelöscht haben. Wie an anderer Stelle in diesem Artikel beschrieben, verwenden Sie RepAdmin, um den objectGUID-Wert jedes DC abzurufen.

  7. Erstellen Sie in Object-list.txt eine Liste von GUID-Paaren im folgenden Format:

    <GUID=dcGUID>: <GUID=objectGUID>

    Hinweis

    In diesem Wert stellt dcGUID die GUID des DC dar, der keine Kopie des lingernden Objekts enthält, und objectGUID stellt die GUID des beibehaltenen Objekts dar.

    Jedes Paar sollte wie folgt aussehen:

    <GUID=<GUID>>: <GUID=<GUID>>

    Wichtig

    Lassen Sie im Wert die Leerzeichen vor und nach dem Doppelpunkt nicht aus.

  8. Führen Sie die Walk-servers.cmd-Datei aus.

Für jeden DC oder globalen Katalogserver, der in Server-list.txt aufgeführt ist, generieren die Skripts eine Protokolldatei mit dem Namen Update-server-name.log. Jede Protokolldatei enthält eine Zeile für jedes Objekt, das gelöscht werden soll.

Da die objekte möglicherweise nicht auf jedem aufgelisteten Server vorhanden sind, weisen Fehler in den Protokolldateien nicht unbedingt auf ein Problem hin. Fehlermeldungen des abgelehnten Formularvorgangs oder Vorgangsfehlers deuten jedoch darauf hin, dass ein Problem mit den GUIDs oder mit der Syntax des Werts vorliegt. Wenn diese Fehler auftreten, überprüfen Sie Folgendes:

  • Stellen Sie sicher, dass die DC-GUIDs die richtigen GUIDs für Domänencontroller sind, die einen Lese-/Schreibnamenskontext der Domäne enthalten, die das Objekt enthält.

  • Stellen Sie sicher, dass die Objekt-GUIDs bleibende Objekte in schreibgeschützten Namenskontexten (globale Katalogserver oder RODCs) identifizieren.

Fehler beim Ausführen von Walkservers.cmd viele objekte in der Umgebung zu ändern

Objekt-GUID <=<GUID>> : <GUID=<GUID>> konnte nicht entfernt werden. Fehlernummer: -2147016672. Fehlerbeschreibung: .

Ursache für diesen Fehler

Dieser Fehler tritt auf, wenn das Skript für die GUID eines Domänencontrollers ausgeführt wird, der keinen Namenskontext mit Lese-/Schreibzugriff enthält, der dem Benennungskontext entspricht, der das beibehaltene Objekt enthält. Überprüfen Sie die Position des stehenden Objekts mit dem Ldp.exe Tool.

Beispiel

Im folgenden Beispiel befindet sich das zu entfernende beibehaltene Objekt in der Domäne corp.company.local. Der <GUID=<GUID-Eintrag>> in der Objects-list.txt-Datei ist jedoch einem Domänencontroller zugeordnet, der sich in der Domäne company.local befindet. Dieser Domänencontroller verfügt nicht über einen Namenskontext mit Lese-/Schreibzugriff für die Domäne "corp.company.local".

Die folgende Suche erzeugt mehrere Objekte, die denselben Benutzer (Joe) darstellen, und listet deren objectGUID-Werte auf.

ldap_search_s(ld, "DC=company,DC=local", 2, "(cn=User*)", attrList, 0, &msg) Ergebnis <0>: (null)
Übereinstimmend mit DNs:
Abrufen von 4 Einträgen:
>> 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: Benutzer, Joe; 1> Beschreibung: 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: <GUID>; 1> Name: Benutzer, Joe;
>> Dn: CN=User, Joe,OU=Migration,DC=corp,DC=company,DC=local 1> canonicalName: corp.company.local/Migration/User, Joe;
1> cn: Benutzer, Joe;
1> Beschreibung: 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: <GUID>;
1> Name: Benutzer, Joe;

Gehen Sie in diesem Beispiel davon aus, dass in der Domäne corp.company.local ein Domänencontroller mit dem Namen CORP-DC-01 vorhanden ist. Wenn Sie den Befehl ausführenrepadmin /showreps CORP-DC-01, wird die objectGUID-Wert-GUID<> erzeugt. Diese GUID ersetzt die vorherige GUID in der Objects-list.txt-Datei. Der Eintrag für dieses anhaltende Objekt sieht nun wie folgt aus:

<GUID=<GUID>> : <GUID=<GUID>>

Die erste GUID ist die GUID des Domänencontrollers in der Domäne corp.company.local. Die zweite GUID ist die GUID des beibehaltenden Objekts. Nach dieser Änderung wird das Walk-servers.cmd Skript erfolgreich ausgeführt.

Fehlermeldung 87 beim Entfernen von objekten in der Umgebung

Dieser Fehler kann auftreten, wenn Sie feststellen, dass Objekte tatsächlich nicht auf allen DOmänencontrollern angezeigt werden, die den Benennungskontext hosten, sie aber repadmin /removelingeringobjects nicht entfernen. Dies kann der Fall sein, wenn ein Hub-Domänencontroller neue Objekte repliziert, die er mit globalen Katalogservern erstellt hat, jedoch nicht mit DCs mit Lese-/Schreibzugriff in einer eigenen Domäne.

Dieser Fehler wird nur in zwei Fällen zurückgegeben:

  • Das -Objekt ist auf dem Referenzdomänencontroller vorhanden.
  • Das Objekt ist (im Vergleich zum aktuellen TSL-Wert) zu jung, um weiterzubehalten.

Betrachten Sie als Beispiel für den zweiten Fall einen globalen Katalogserver mit den folgenden Metadaten:

Loc.USN-Ursprungs-DC Org.USN Org.Time/Date Ver-Attribut
======= =============== ========= ============= === =========
143543261 d20f71f3-6147-4f80-a0c2-470541ef09e6 104742409 <DateTime> objectClass
Up-To-Dateness Vector of a RW-replica: d20f71f3-6147-4f80-a0c2-470541ef09e6 @ USN 104583382 @ Time <DateTime>
Up-To-Dateness Vector of a GC: d20f71f3-6147-4f80-a0c2-470541ef09e6 @ USN 104762881 @ Time <DateTime>

In diesem Fall hat der Domänencontroller das Objekt erstellt, nachdem die Replikation mit den Domänencontrollern in seiner eigenen Domäne fehlgeschlagen ist, aber er wurde weiterhin mit globalen Katalogservern in anderen Domänen repliziert.

Um dieses Problem zu beheben, lassen Sie diese Objekte zu echten objekten werden (die über TSL hinausgehen) und entfernen Sie sie dann mithilfe des Skripts in diesem Artikel. Um sicherzustellen, dass die Daten weiterhin repliziert werden, legen Sie Replikation mit abweichendem und beschädigtem Partner auf allen Domänencontrollern in der Gesamtstruktur zulassen fest.

Wenn Sie die Fehler in den Protokolldateien nicht mithilfe dieser Methoden beheben können, tritt möglicherweise ein anderes Problem auf. Wenden Sie sich an den Microsoft-Produktsupport, um weitere Unterstützung zu erhalten.

Datensammlung

Wenn Sie Unterstützung vom Microsoft-Support benötigen, empfehlen wir Ihnen, die Informationen zu sammeln, indem Sie die unter Sammeln von Informationen mithilfe von TSS für Active Directory-Replikationsprobleme beschriebenen Schritte ausführen.