{"id":286,"date":"2015-07-07T08:34:16","date_gmt":"2015-07-07T06:34:16","guid":{"rendered":"http:\/\/blog.langlitz-it.de\/?p=286"},"modified":"2015-07-21T12:27:23","modified_gmt":"2015-07-21T10:27:23","slug":"event-ids-1388-1988-2042-windows-2003-active-directory","status":"publish","type":"post","link":"https:\/\/www.langlitz-it.de\/?p=286","title":{"rendered":"&#8220;Lingering Objects&#8221; &#8211; Windows Active Directory"},"content":{"rendered":"<p><strong><em>Lingering Objects<\/em> &#8211; Was ist das eigentlich?<\/strong><\/p>\n<p>Vereinfacht ausgedr\u00fcckt sind \u201e<em>Lingering Objects\u201c<\/em> veraltete <em>Active Directory<\/em> Objekte, die gel\u00f6scht wurden, aber von DCs, die w\u00e4hrend der \u201e<em>Tombstone Lifetime period\u201c<\/em> nicht repliziert wurden, wiederhergestellt worden sind.<\/p>\n<p>Wie kann das passieren? Wird ein Objekt im <em>AD<\/em> gel\u00f6scht, existiert dieses immer noch im <em>AD<\/em> als \u201e<em>Tombstone\u201c<\/em> (Grabstein). Dieser <em>Tombstone<\/em> enth\u00e4lt nur die wichtigsten Attribute des Objektes und wird in den <em>AD Container<\/em> &#8220;<em>Deleted Objects<\/em>&#8221; verschoben. Der Inhalt dieses Containers ist \u00fcber die herk\u00f6mmlichen <em>AD<\/em> Tools wie z.B. <em>ADUC (Active Directory Users and Computers)<\/em> nicht sichtbar. Um sich den Inhalt anzusehen, ist ein <em>LDAP<\/em> Tool wie z.B. <em>LDP.exe<\/em> erforderlich. Das gel\u00f6schte Objekt bleibt bis zum Ablauf der <em>Tombstone Lifetime period<\/em> (bis Windows 2003 60 Tage default, ab Windows 2003 SP1 180 Tage default) in diesem Container und wird erst nach Ablauf dieser Periode vom<em> &#8220;garbage collection process&#8221;<\/em>, der per default alle 12 Stunden auf jedem <em>DC<\/em> l\u00e4uft, aus dem <em>AD<\/em> gel\u00f6scht.<\/p>\n<p>Nehmen wir an, ein DC ist f\u00fcr diesen Zeitraum offline. Vielleicht kann er auch (warum auch immer) \u00a0die Replikation nicht erfolgreich durchf\u00fchren. Kommt der DC nun nach Ablauf der <em>Tombstone Lifetime period<\/em> wieder online, geht er davon aus, dass das Objekt zu den anderen DCs repliziert werden muss, weil diese es ja nicht mehr haben. Das Objekt nicht direkt zu l\u00f6schen, hat nat\u00fcrlich seine Berechtigung. W\u00fcrde es sofort aus der <em>AD<\/em> Datenbank gel\u00f6scht, k\u00f6nnte es schnell passieren, dass andere <em>DCs<\/em>, gerade bei einer weltweiten Umgebung, nichts von der L\u00f6schung mitbekommen w\u00fcrden und so eben auch diese <em>Lingering Objects<\/em> entstehen w\u00fcrden.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Ein Beispiel<\/strong><\/p>\n<p>Im Standort Deutschland eines <em>ADs<\/em> wird ein Benutzer gel\u00f6scht. Der <em>DC<\/em> im Standort Kanada ist aber nun 60 Tage offline und kommt am 61sten Tag wieder online. Der DC in Kanada hat aber von der L\u00f6schung des Benutzers nichts mitbekommen und geht nun davon aus, dass dieser repliziert werden muss. Nun replizieren alle Partner den Benutzer und das Objekt ist im <em>AD<\/em> wieder existent. Da der <em>Global Catalog<\/em> in Kanada eine <em>Read-only<\/em> Kopie der Dom\u00e4ne in Deutschland h\u00e4lt, wird eine schreibgesch\u00fctzte Kopie des eigentlich gel\u00f6schten Benutzers repliziert.<\/p>\n<p>Unter diesen Umst\u00e4nden erhalten Sie alle m\u00f6glichen skurrilen Fehler. Sie m\u00f6chten z.B. einen Benutzer erstellen, der so hei\u00dft wie der vermeintlich gel\u00f6schte und bekommen die Meldung, dass dieser schon existiert. Das Ph\u00e4nomen kann auch zu Inkonsistenzen im AD f\u00fchren. Durch Inkonsistenzen in der GAL k\u00f6nnte auch die Mail Zustellung gest\u00f6rt werden. Es k\u00f6nnte passieren, dass einzelne AD Partitionen nicht mehr repliziert werden. Und noch vieles mehr\u2026<\/p>\n<p>&nbsp;<\/p>\n<p><strong><em>Lingering Objects<\/em> verhindern<\/strong><\/p>\n<p>Um <em>Lingering Objects<\/em> zu vermeiden, gibt es folgenden Registry Schl\u00fcssel<\/p>\n<p><em>HKEY_LOCAL_MACHINE \\ System \\ CurrentControlSet \\ Services \\ NTDS \\ Parameters\\Strict Replication Consistency<\/em><\/p>\n<p>Ist dieser Schl\u00fcssel auf 1 gesetzt, repliziert ein <em>DC<\/em>, der l\u00e4nger als die <em>Tombstone Lifetime<\/em> nicht mehr \u201eonline\u201c war, keine \u00a0veralteten Objekte zur\u00fcck an den \u201eaktuellen\u201c <em>DC<\/em>. Damit wird die Entstehung von <em>Lingering Objects<\/em> verhindert.<\/p>\n<p>In Windows 2000 war dieser Schl\u00fcssel noch per default auf \u201e0\u201c, also die <em>Strict Replication Consistency<\/em> ausgeschaltet. Wurde eine Dom\u00e4ne oder ein Forest von Windows 2000 also irgendwann migriert, ist diese Funktion immer noch ausgeschaltet.<\/p>\n<p>Am einfachsten schalten Sie die <em>Strict Replication Consistency<\/em> mit folgendem Befehl auf einem <em>DC<\/em> ein:<\/p>\n<p><em>Repadmin \/regkey DCName +strict<\/em><\/p>\n<p>Mit dem Parameter <em>\u2013strict<\/em> \u201ek\u00f6nnten\u201c Sie die Pr\u00fcfung auch ausschalten, was Sie aber nicht tun sollten.<\/p>\n<p>Sie k\u00f6nnen die Pr\u00fcfung auch auf allen DCs auf einmal setzen mit<\/p>\n<p><em>Repadmin \/regkey * +strict<\/em><\/p>\n<p>Achten Sie darauf, dass bei einer von Windows 2000 migrierten Dom\u00e4ne auch jeder neu eingerichtete DC automatisch den Schl\u00fcssel<em> Strict Replication Consistency<\/em> auf \u201e0\u201c gesetzt hat!<\/p>\n<p>&nbsp;<\/p>\n<p><strong><em>Lingering Objects<\/em> finden<\/strong><\/p>\n<p>Wie finden Sie nun heraus, ob es in Ihrem <em>AD Lingering Objects<\/em> gibt? Es gibt mehrere Events, die darauf hinweisen:<\/p>\n<p>Das Event 1864 ist ein solcher Hinweis:<\/p>\n<pre><\/pre>\n<pre>Event ID 1864\r\nSource NTDS Replication\r\nUser NT AUTHORITY\\ANONYMOUS LOGON\r\nThis is the replication status for the following directory partition on the local domain controller.\r\nDirectory partition:\r\nDC=DomainDnsZones,DC=domain,DC=com\r\n\r\nThe local domain controller has not recently received replication information from a number of domain controllers. The count of domain controllers is shown, divided into the following intervals.\r\nMore than 24 hours:\r\n2\r\nMore than a week:\r\n1\r\nMore than one month:\r\n1\r\nMore than two months:\r\n1\r\nMore than a Tombstone Lifetime:\r\n1\r\nTombstone Lifetime (days):\r\n60<\/pre>\n<p>Dieses Event zeigt an, wie viele DCs an einem Tag, einer Woche, einem Monat, zwei Monaten oder mehr als die <em>Tombstone Liftime<\/em> nicht mehr erfolgreich repliziert haben. Der letzte Eintrag \u201eMore than a Tombstone Lifetime\u201c ist der entscheidende. Leider teilt das Event nicht mit, um welchen DC es sich dabei handelt \ud83d\ude41<\/p>\n<p>Das n\u00e4chste Indiz ist das Event 2042:<\/p>\n<pre>Event 2042\r\nSource: NTDS Replication<\/pre>\n<p>Dieses Event zeigt an, dass die <em>strict replication <\/em>enabled ist, der Quell DC nicht w\u00e4hrend der <em>Tombstone Lifetime<\/em> repliziert hat und die Replikation deshalb von dem Quell <em>DC<\/em> deaktiviert wurde. Das Event liefert die GUID des <em>DCs<\/em> im <em>CNAME<\/em> (Alias) Format, wie er im DNS zu finden ist: <em>4255b1a3-56e3-21e4-4b3d-4609-bce1cdd3bfcb._msdcs.domain.com<\/em>. Damit kann der betroffene <em>DC<\/em> leicht identifiziert werden.<\/p>\n<p>Dann gibt es noch das Event 1388:<\/p>\n<pre>Event 1388\r\nSource: NTDS Replication<\/pre>\n<pre>Description: Another domain controller (DC) has attempted to replicate into this DC an object which is not present in the local Active Directory database. The object may have been deleted and already garbage collected (a Tombstone Lifetime or more has past since the object was deleted) on this DC.<\/pre>\n<p>Und 1988:<\/p>\n<pre>Event 1988\r\nSource: NTDS Replication<\/pre>\n<pre>Description: Active Directory Replication encountered the existence of objects in the following partition that have been deleted from the local domain controllers (DCs) Active Directory database.\u00a0\u00a0This event is being logged because the source DC contains a lingering object which does not exist on the local DCs Active Directory database.\u00a0\r\nSource DC (Transport-specific network address):\u00a0\r\n4255b1a3-56e3-21e4-4b3d-4609-bce1cdd3bfcb._msdcs.domain.com<\/pre>\n<p>&nbsp;<\/p>\n<p><strong><em>Lingering Objects<\/em> entfernen<\/strong><\/p>\n<p>Wie kann man diese <em>Lingering Objects<\/em> nun entfernen. Am besten mit dem <em>Repadmin<\/em> Tool.<\/p>\n<p><em>repadmin \/removelingeringobjects ZielDC QuellDCGUID DomainPartition \/advisory_mode<\/em><\/p>\n<p>Der <em>ZielDC<\/em> ist der <em>DC<\/em> auf dem die <em>Lingering Objects<\/em> existieren. Im Event 1988 ist dies der Wert des <em>Source DCs<\/em><\/p>\n<p><em>QuellDCGUID<\/em> ist die <em>GUID<\/em> des \u201eaktuellen\u201c <em>Quell DCs<\/em>. Um diese herauszufinden, \u00f6ffnen Sie das <em>SnapIn<\/em> <em>Active Directory Sites and Services.<\/em> Gehen Sie auf die <em>NTDS Settings<\/em> des <em>QuellDCs<\/em> und sehen Sie sich unter den Eigenschaften den <em>DNS Alias<\/em> an. Dies ist die <em>GUID<\/em>, die Sie ben\u00f6tigen.<\/p>\n<p>Als <em>Domainpartition<\/em> geben Sie noch die Partition an, die eben nicht repliziert wurde. Sicherheitshalber k\u00f6nnen Sie dies noch einmal mit <em>repadmin \/showreps<\/em> \u00fcberpr\u00fcfen.<\/p>\n<p>Verwenden Sie am besten immer beim ersten Aufruf den Parameter <em>\/advisory_mode<\/em>, da damit nichts entfernt, sondern nur das Ergebnis des Befehls angezeigt wird. Erst wenn alles erfolgreich war, sollten Sie den Befehl ohne <em>\/advisory_mode<\/em> aufrufen.<\/p>\n<p>Nach erfolgreichem Aufruf erhalten Sie die R\u00fcckmeldung:<\/p>\n<p><em>RemoveLingeringObjects sucessfull on ZielDC.<\/em><\/p>\n<p>&nbsp;<\/p>\n<p>Viel Erfolg!<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lingering Objects &#8211; Was ist das eigentlich? Vereinfacht ausgedr\u00fcckt sind \u201eLingering Objects\u201c veraltete Active Directory Objekte, die gel\u00f6scht wurden, aber von DCs, die w\u00e4hrend der \u201eTombstone Lifetime period\u201c nicht repliziert wurden, wiederhergestellt worden sind. Wie kann das passieren? Wird ein &hellip; <a href=\"https:\/\/www.langlitz-it.de\/?p=286\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[101,501,102,103,502,505,504,503,104,507,506,105],"_links":{"self":[{"href":"https:\/\/www.langlitz-it.de\/index.php?rest_route=\/wp\/v2\/posts\/286"}],"collection":[{"href":"https:\/\/www.langlitz-it.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.langlitz-it.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.langlitz-it.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.langlitz-it.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=286"}],"version-history":[{"count":18,"href":"https:\/\/www.langlitz-it.de\/index.php?rest_route=\/wp\/v2\/posts\/286\/revisions"}],"predecessor-version":[{"id":1196,"href":"https:\/\/www.langlitz-it.de\/index.php?rest_route=\/wp\/v2\/posts\/286\/revisions\/1196"}],"wp:attachment":[{"href":"https:\/\/www.langlitz-it.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=286"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.langlitz-it.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=286"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.langlitz-it.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}