Blog Home  Home Feed your aggregator (RSS 2.0)  
LDAP://Yusufs.Directory.Blog/ - Sunday, July 04, 2010
Wieviele Sprachen sprechen Sie? Ich spreche bloß eine: LDAP!
 
 Sunday, July 04, 2010

Das Active Directory (AD), das auf dem Extensible Storage Engine (ESE) Datenbankmodul basiert organisiert Objekte in einer hierarchischen Baumstruktur und stellt die Hierarchie der Objekte für eine Gesamtstruktur. Das AD speichert die transaktionale Datenbank intern in drei Tabellen: Datentabelle (Data-Table), Verknüpfungstabelle (Link-Table) und in der erweiterten Sicherheitseinstellungen Tabelle (Security Descriptor-Table, kurz SD-Table). Die beiden wichtigsten Tabellen in der sich die Daten des AD befinden ist die Datentabelle, die alle Objekte sowie Attribute enthält und die Verknüpfungstabelle, in der die Beziehungen zwischen den Objekten gespeichert werden.

Siehe auch: Verknüpfte Attribute


In der Datentabelle wird jedes Attribut und jedes Objekt in einer einzelnen Zeile, mit einer Spalte pro Attribut gespeichert. Das bedeutet, jede Zeile in der Datentabelle entspricht einem Attribut bzw. Objekt. Die Einträge die sich auf einem Domänencontroller (DC) in der Datentabelle befinden, sind aus der Schema-, Konfigurations-, Anwendungs- und Domänenpartition. Die Datentabelle eines globalen Katalogs (GC) enthält neben den Einträgen aus den bereits erwähnten Verzeichnispartitionen, zusätzlich noch die Einträge aus allen anderen Domänenpartitionen innerhalb der Gesamtstruktur. Denn bekanntermaßen werden alle Objekte aus allen Domänen innerhalb einer Gesamtstruktur, lediglich mit den Attributen die für eine Suche relevant sind in den GC repliziert.

Um jede Zeile in der Datentabelle eindeutig identifizieren zu können, verwendet das AD als eindeutige Kennung das Distinguished Name Tag (DNT). Bei dem DNT handelt es sich um einen vier Byte (32Bit) Integer Wert und dieser wird zum internen Verweis auf Attribute und Objekte verwendet. Der Distinguished Name Tag ist eine lokale Kennung der nicht zwischen den DCs repliziert wird und lautet bei jedem DC anders.

Der DNT gibt die Zeile in der AD-Datenbank an, in der das Attribut bzw. Objekt gespeichert ist. Jedes Objekt das erstellt wird erhält im DNT eine fortlaufende Nummer. Oder wenn z.B. ein Benutzer einer Gruppe hinzugefügt wird, speichert das AD den DNT des Benutzerobjekts im member Attribut der Gruppe und nicht den Distinguished Name (DN). Dadurch das sich der DNT selbst beim Umbenennen eines Objekts nicht ändert kann ein Benutzerobjekt umbenannt werden, ohne dass das AD alle Gruppen durchsuchen muss um den DN des Benutzers in jedem member Attribut der Gruppe aktualisieren zu müssen.

Im AD hat jedes Objekt genau ein übergeordnetes Objekt und ein Verweis auf das übergeordnete Objekt ist mit dem Objekt selbst gespeichert. Für die Beziehung zwischen den über- und untergeordneten Objekten speichert das AD in einer zusätzlichen Spalte innerhalb der Datentabelle den Parent Distinguished Name Tag (PDNT). In dieser Spalte wird der DNT vom übergeordneten Objekt gespeichert. Die Auflösung der Beziehung zwischen den über- und untergeordneten Objekten ist optimiert, da der DNT und PDNT indizierte Felder in der AD-Datenbank sind.

Um sich das genauer vor Augen zu führen empfiehlt es sich einen Export der AD-Datenbank mit LDP zu generieren. Diese Möglichkeit, einen Export der AD-Datenbank und das sogar im laufenden Betrieb durchzuführen, existiert seit Windows 2000 und ist dank des speziellen Attributs dumpdatabase möglich, das nur für diesen Zweck existiert. Nach dem man LDP gestartet hat, muss man sich zunächst mit einem DC verbinden. Dazu wählt man in LDP unter dem Menüpunkt Remotedesktopverbindung die Option Verbinden… und gibt den gewünschten DC an, von dem aus ein Export der lokalen AD-Datenbankkopie durchgeführt werden soll. Danach muss man ebenfalls unter dem Menüpunkt Remotedesktopverbindung die Option Gebunden… wählen, um sich mit dem AD zu binden. Anschließend gilt es unter dem Menüpunkt Durchsuchen die Option Ändern aufzurufen. Nun muss im Feld Attribut das Attribut dumpdatabase eingetragen werden. Im Feld Werte können die gewünschten Attribute angegeben werden die mit exportiert werden sollen. Das Feld darf dabei nicht leer bleiben und es muss mindestens ein Attribut angegeben werden. Standardmäßig werden unter Windows Server 2008 R2 bereits diese Werte exportiert: DNT - PDNT - CNT - NCDNT - OBJ – DelTime - RecTime - INST - RDNTyp – RDN. Hat man die entsprechenden Attribute eingegeben, muss im Bereich Vorgang die Option Hinzufügen gewählt und mit einem Klick auf Eingabe die getätigten Einträge in die Eingabeliste übernommen werden. Mit einem Klick auf Ausführen wird der Export dann durchgeführt.



Je nach Anzahl der Attribute, Objekte und Größe der AD-Datenbank kann der Export einige Zeit in Anspruch nehmen. Daher ist es empfehlenswert, den Export auf einem DC zu einem Zeitpunkt zu generieren, wenn gerade keine größere Last auf dem DC besteht!

Die exportierte Datei mit dem Dateinamen NTDS.dmp kann mit einem Texteditor geöffnet werden (z.B. Notepad) und wird im gleichen Verzeichnis erstellt, in der sich auch die AD-Datenbank NTDS.dit befindet (standardmäßig %windir%\NTDS).


 

 

Was passiert denn nun in der AD-Datenbank wenn ein Objekt, z.B. ein Benutzer gelöscht wird?

Es heißt wenn ein Objekt, z.B. ein Benutzer gelöscht wird, wandert es in den versteckten Container Deleted Objects das sich in der Domänenpartition befindet.
Näheres zum Container Deleted Objects liefert der folgende Artikel:

Der Container Deleted Objects


Doch bevor das Objekt überhaupt gelöscht wird, findet anhand bestimmter Kriterien eine Überprüfung statt, ob das Objekt auch tatsächlich gelöscht werden darf.
Welche Kriterien das hauptsächlich sind, steht im diesem Artikel:

Active Directory Wiederherstellung


Wenn die Kriterien erfüllt und das Objekt gelöscht werden darf, werden folgende Änderungen am dem gelöschten Objekt vorgenommen:

Lingering Objects (veraltete Objekte)


In Wirklichkeit wird in der AD-Datenbank das Objekt das gelöscht wurde, also z.B. ein Benutzer nicht verschoben. Stattdessen bleibt das Objekt nach dem Löschen weiterhin in der AD-Datenbank an seinem Platz bestehen! Lediglich die Beziehung zu dem übergeordneten Objekt, also der PDNT im gelöschten Objekt ändert sich. Das gelöschte Objekt erhält in der Spalte PDNT den DNT vom Container Deleted Objects.

Im Übrigen trifft das nicht nur auf das Löschen von Objekten zu. Auch wenn ein Objekt in eine andere OU verschoben wird, bleibt das Objekt weiterhin an seinem Ursprungsort in der AD-Datenbank bestehen. Das Einzige was sich auch hier ändert, ist die Beziehung zum übergeordneten Objekt, also der Wert in der Spalte PDNT.

Schauen wir uns das im folgenden Beispiel an:


Das Benutzerobjekt Yusuf Dikmenoglu enthält in der Spalte DNT den Wert 3702. Das Objekt befindet sich also in der Zeile 3702. In der Spalte PDNT ist als Wert 3697 eingetragen. Im PDNT ist der DNT vom übergeordneten Objekt gespeichert. Schaut man sich nun in der Spalte DNT die Zeile 3697 an wird schnell klar, das sich der Benutzer Yusuf Dikmenoglu in der OU „IT“ befindet.

Löscht man jetzt das Benutzerobjekt Yusuf Dikmenoglu, bleibt das Objekt weiterhin in der Zeile 3702 bestehen. Der Wert in der Spalte PDNT, sprich die Beziehung zum übergeordneten Objekt ändert sich jedoch! Das übergeordnete Objekt des gelöschten Benutzerobjekts Yusuf Dikmenoglu ist jetzt nicht mehr die OU „IT“, sondern der Container Deleted Objects in der Domänenpartition.



Wie zu erkennen ist wurde der Wert in der Spalte PDNT im gelöschten Benutzerobjekt Yusuf Dikmenoglu, von 3697 auf 1802 geändert.

Was an dieser Stelle auch zu erkennen ist, der Relative Distinguished Name (RDN) des gelöschten Benutzerobjekts hat einen eindeutigen Namen erhalten. Das gelöschte Objekt erhält intern den Namen <alterRDN>DEL:<objectGUID>. Durch das Hinzufügen der objectGUID ist sichergestellt, dass das Objekt auch im gelöschten Status einen einmaligen Namen innerhalb der AD-Datenbank besitzt und somit eindeutig zu identifizieren ist. Das ist auch notwendig, denn wenn es ein zweites Benutzerobjekt Yusuf Dikmenoglu geben würde das ebenfalls gelöscht wird, müssen beide Objekte im Container Deleted Objects identifiziert werden können. Diese Vorgehensweise ist insbesondere für das wiederherstellen des Tombstones oder aus dem AD-Papierkorb zwingend notwendig!

 

Weitere Informationen:
Die unterschiedliche Größe der AD-Datenbank
Domänencontroller vergleichen
Phantome im Active Directory

Sunday, July 04, 2010 2:06:25 PM (W. Europe Standard Time, UTC+01:00)  #      Active Directory | Administration | Schema  | 
 Wednesday, June 23, 2010

Anlässlich des Erscheinens der aktuellen ADMT Version 3.2 findet ihr hier eine Übersicht die aufzeigt:

  • Welche ADMT Version sich auf welchem Serverbetriebssystem installieren lässt.
  • Mit welcher ADMT Version man von welcher Quell-Domäne zu welcher Ziel-Domäne migrieren kann.
  • Auf welchen Systemen sich der ADMT Agent installieren lässt.

 

ADMT Version

OS

Kann installliert werden auf

Quell-Domäne

Ziel-Domäne

ADMT Agent kann installiert werden auf

ADMT 3.2

Windows Server 2008 R2

ü (nicht auf RODC und Server Core)

ü

ü

ü

Windows Server 2008 

X

ü

ü

ü

Windows Server 2003

X

ü

ü

ü

Windows 2000 Server

X

X

X

X

Windows NT Server 4.0

X

X

X

X

Windows 7

X

X

X

ü

Windows Vista

X

X

X

ü

Windows XP

X

X

X

ü

Windows 2000 Professional

X

X

X

X

ADMT Version

OS

Kann installliert werden auf

Quell-Domäne

Ziel-Domäne

ADMT Agent kann installiert werden auf

ADMT 3.1

Windows Server 2008 R2

X

X

ü

ü

Windows Server 2008 

ü (nicht auf RODC und Server Core)

ü

ü

ü

Windows Server 2003

X

ü

ü

ü

Windows 2000 Server

X

ü

ü

ü

Windows NT Server 4.0

X

X

X

X

Windows 7

X

X

X

ü

Windows Vista

X

X

X

ü

Windows XP

X

X

X

ü

Windows 2000 Professional

X

X

X

ü

ADMT Version

OS

Kann installliert werden auf

Quell-Domäne

Ziel-Domäne

ADMT Agent kann installiert werden auf

ADMT 3.0

Windows Server 2008 R2

X

X

X

X

Windows Server 2008 

X

X

X

X

Windows Server 2003

ü

ü

ü

ü

Windows 2000 Server

X

ü

ü

ü

Windows NT Server 4.0

X

ü

X

ü

Windows 7

X

X

X

X

Windows Vista

X

X

X

X

Windows XP

X

X

X

ü

Windows 2000 Professional

X

X

X

ü

ADMT Version

OS

Kann installliert werden auf

Quell-Domäne

Ziel-Domäne

ADMT Agent kann installiert werden auf

ADMT 2.0

Windows Server 2008 R2

X

X

X

X

Windows Server 2008 

X

X

X

X

Windows Server 2003

ü

ü

ü

ü

Windows 2000 Server

ü

ü

ü

ü

Windows NT Server 4.0

X

ü

X

ü

Windows 7

X

X

X

X

Windows Vista

X

X

X

X

Windows XP

X

X

X

ü

Windows 2000 Professional

X

X

 

X

 

 

Weitere Informationen:
Eine Domänenmigration durchführen
Einen Domänensplitt durchführen
ADMT Version 3.1
Benutzermigration mit ADMT v3: How-To
Den ersten Windows Server 2008 R2 DC zur Gesamtstruktur hinzufügen
Active Directory Migration Tool v.2.0
Password Export Server version 3.1 (x86)
Password Export Server version 3.1 (x64)

Wednesday, June 23, 2010 12:58:31 PM (W. Europe Standard Time, UTC+01:00)  #      Active Directory | Migration  | 
 Saturday, June 19, 2010

Seit der Veröffentlichung von Windows Server 2008 R2 konnte die bis dahin aktuelle ADMT Version 3.1 nicht auf einem Windows Server 2008 R2 installiert werden. Möchte man die bestehende Windows 2000, Windows Server 2003 oder Windows Server 2008 Umgebung mit ADMT in eine Windows Server 2008 R2 Domäne migrieren, muss dazu die ADMT Version 3.1 auf einem Windows Server 2008 installiert werden.

Nun hat aber Redmond die ADMT Version 3.2 veröffentlicht. Diese Version lässt sich ausschließlich auf einem Windows Server 2008 R2 installieren.

Active Directory Migration Tool version 3.2


Das aktualisierte ADMT-Handbuch findet man hier:

Active Directory Migration Tool (ADMT) Guide: Migrating and Restructuring Active Directory Domains


Mit ADMT 3.2 können Migrationen von folgenden Quell-Domänen durchgeführt werden:

- Windows Server 2003
- Windows Server 2008
- Windows Server 2008 R2


Als Ziel-Domänen werden ebenfalls diese unterstützt:

- Windows Server 2003
- Windows Server 2008
- Windows Server 2008 R2


Wie unschwer zu erkennen ist, kann man ADMT 3.2 nicht für eine Migration von Windows 2000 verwenden!
Wer eine Windows 2000 Domäne migrieren möchte, der muss ADMT 3.1 verwenden.

ADMT 3.2 lässt sich wie schon ADMT 3.1 nicht auf einem Server Core oder RODC installieren!

Wer eine Migration mit diesem Werkzeug durchgeführt hat, weiß es zu schätzen! Vor allem da es kostenlos von Microsoft zur Verfügung gestellt wird.

Viel Erfolg bei euren Migrationen! :-)

 

Weitere Informationen:
Eine Domänenmigration durchführen
ADMT Version 3.1
Einen Domänensplitt durchführen

Saturday, June 19, 2010 9:16:22 AM (W. Europe Standard Time, UTC+01:00)  #      Active Directory | Migration  | 
 Sunday, June 13, 2010

Seit längerer Zeit befasse ich mich schon mit dem Gedanken, eine deutschsprachige Active Directory (AD) Mailingliste zu erstellen. Nun ist es soweit. Die AD Mailingliste ist erstellt!

Das ist die erste deutschsprachige geschlossene Diskussionsgruppe zu dem Dachbegriff "Active Directory" und den verwandten Themen. Unter dem Dachbegriff "Active Directory" fallen die Technologien: AD DS (AD Domain Services), AD CS (AD Certificate Services), AD LDS (AD Lightweight Directory Services, ehemals ADAM), AD FS (AD Federation Services) und AD RMS (AD Rights Management Services).

Verwandte Themen sind allgemeine Fragen bzw. Probleme im "Windows Server" Bereich mit allen Infrastrukturdiensten bzw. Funktionen wie z.B. DNS und GPO.

 

Was ist eine Mailingliste (ML)?

Eine ML kann man mit einer E-Mail Verteilergruppe vergleichen. Alle Benutzer die an der ML angemeldet sind, können Beiträge schreiben und jeder der an der ML angemeldet ist erhält jeden Beitrag.

Jeder der angemeldet ist kann Fragen stellen sowie Antworten versenden. Der Vorteil einer Mailingliste gegenüber einem Forum ist, dass die Beiträge offline gelesen und geschrieben werden können!

 

Wie kann man sich an der Mailingliste anmelden?

Wer sich an der ML anmelden möchte, muss lediglich eine Mail an adde-request[at]freelists.org mit dem Betreff subscribe senden. Weiterer Text in der Mail ist nicht notwendig. Danach erhält man eine Mail von "FreeLists Mailing List Manager" worauf man unbedingt antworten muss. Erst wenn eine Antwort versendet wurde, ist die Anmeldung abgeschlossen. Danach erhält man eine zweite System-Mail die vom ML-Provider automatisch verschickt wird.

Oder man trägt seine Mailadresse auf der folgenden Seite ein und wählt die Aktion Subscribe.

Die erste deutschsprachige "Active Directory" Mailingliste

 

Wie kann man sich von der ML abmelden?

Dazu muss man auch nur eine Mail an adde-request[at]freelists.org mit dem Betreff Unsubscribe senden. Eine Textnachricht in der Mail ist nicht notwendig. Anschließend erhält man eine Bestätigungsmail, auf die zwingend geantwortet werden muss.

Oder man trägt seine Mailadresse auf der folgenden Seite ein und wählt die Aktion Unsubscribe.

Die erste deutschsprachige "Active Directory" Mailingliste

 

Wie kann man eine Frage bzw. einen Beitrag an die ML senden?

Um eine Frage an die ML zu senden, muss lediglich eine E-Mail an die Adresse adde[at]freelists.org gesendet werden. In der Mail sollte ein aussagekräftiger Betreff gewählt werden, eine Begrüßung gehört ohnehin dazu und als Nachricht natürlich die Frage. Jeder andere in der ML kann dann auf diese Frage die als Mail an jeden ML-Teilnehmer versendet wird antworten.

Da jede Nachricht an die ML im Betreff mit [adde] gekennzeichnet wird, sind alle Mails die von der ML verschickt werden leicht zu identifizieren.

 

Was ist nicht erwünscht?

Was nicht gerne gesehen wird sind Wörter wie „Dringend“, „Hilfe“, „Notfall“, „Schnell“ oder ähnliches, mit vielleicht auch noch jeder Menge Ausrufezeichen im Betreff! Die ML ist eine nicht kommerzielle Plattform. Alle Teilnehmer bekommen keinen Cent und helfen Hilfesuchenden kostenlos und in ihrer Freizeit! Wenn sofortige (ich schreibe bewusst nicht zusätzlich „professionelle“, denn die Teilnehmer der ML sind größtenteils Experten!) Hilfe benötigt wird, sollte man sich an seinen Dienstleister seines Vertrauens wenden.

Hat man seine Frage bereits in einem Forum gestellt, sollte man nicht nach fünf Minuten die gleiche Frage in der ML stellen! Erst wenn der erste Versuch erfolglos war (und das kann mehrere Tage in Anspruch nehmen), sollte man sich an die ML wenden. Denn viele Teilnehmer der ML sind auch in den einschlägigen Foren unterwegs.

Keiner der ML-Teilnehmer darf direkt angemailt werden. Alle Nachrichten sind stets und ausschließlich an die ML adde[at]freelists.org zu senden!

Kommerzielle Werbung wird keineswegs geduldet (Hinweise auf Werkzeuge ausgenommen)!

 

Gibt es auch ein Archiv, um ältere Diskussionen zu durchforsten?

Ja, es existiert auch ein Archiv worin man unter der folgenden Adresse stöbern kann.

adde Mailingliste Archiv

 

Wenn es Probleme bei der Anmeldung oder beim Senden eines Beitrags gibt?

Falls es bei der Anmeldung oder beim Senden eines Beitrags wieder Erwartens zu Problemen kommen sollte, schickt mir bitte über meinen Blog eine Mail und ich kümmere mich darum.

 

 

Ich lade jeden herzlich dazu ein, an der AD Mailingliste teilzunehmen und sich daran zu beteiligen!

Auf interessante und knifflige Diskussionen!

Sunday, June 13, 2010 10:27:58 AM (W. Europe Standard Time, UTC+01:00)  #      AD-Mailingliste  | 
 Sunday, May 30, 2010

Mit Windows Server 2008 führte Microsoft eine neue Funktion ein mit der es möglich ist, eine Momentaufnahme (im englischen Snapshot genannt) des Active Directory (AD) im laufenden Betrieb auf einem DC zu erstellen und das sogar ohne den Betrieb zu beeinflussen. Ein AD-Snapshot kann dann zu Analyse- und Vergleichszwecken bereitgestellt werden. Aber auch zum Begutachten eines früheren Datenbestands eignet sich diese Technik hervorragend. Des Weiteren hat der Administrator mit dieser Funktion die Möglichkeit, ohne den DC im Modus Verzeichnisdienste wiederherstellen starten zu müssen, Daten aus dem AD-Snapshot zu exportieren und in der produktiven Umgebung zu importieren. Dabei ist lediglich ein Lese- und kein Schreibzugriff auf ein AD-Snapshot möglich! Mit dieser Technik die auf dem Volumenschattenkopiedienst (VSS) beruht, kann man in wenigen Augenblicken auf einfache Weise, punktgenaue AD-Snapshots der lokalen Kopie der AD-Datenbank (NTDS.dit) erstellen. Genau genommen wird ein Snapshot des gesamten Volumes erstellt, auf der sich die AD-Datenbank samt -Protokolle und dem SYSVOL-Verzeichnis befindet. Dabei können AD-Snapshots manuell oder automatisiert auf DCs, die mindestens unter Windows Server 2008 laufen erstellt werden. Der Domänenfunktionsmodus hat keine Relevanz.

Es gilt zu beachten, dass ein AD-Snapshot keine vollständige Kopie der AD-Datenbank enthält! Vielmehr stellt ein AD-Snapshot eine Sammlung von Datenträgerblöcken in der AD-Datenbank dar, die seit dem letzten AD-Snapshot geändert wurden. Durch zusammenfügen der Blöcke mit der lokalen Kopie der AD-Datenbank, kann der Volumenschattenkopiedienst die lokale Verzeichnisdatenbank zum Zeitpunkt der Erstellung des Snapshots darstellen.

Ein AD-Snapshot wird mit dem Kommandozeilentool NTDSUTIL erstellt. Man könnte zwar auch ein Snapshot im Betriebssystem erstellen, doch nur wenn das AD-Snapshot mit NTDSUTIL erstellt wird ist sichergestellt, dass die AD-Datenbank konsistent ist!

AD-Snapshots die mit Windows Server 2008 R2 fortgeführt werden helfen dem Administrator zu bestimmen, welche AD-Sicherung die gewünschten wiederherzustellenden Daten enthält. Auch wenn man lediglich überprüfen möchte, welche Werte ein Objekt bzw. ein Attribut vor einer Änderung hatte, eignet sich dieses Verfahren. In den AD Versionen vor Windows Server 2008 muss der Administrator mehrere Sicherungssätze rücksichern um zu bestimmen, welche Sicherung die wiederherzustellenden Daten enthält. Dazu ist es zwingend notwendig, dass der DC im Modus Verzeichnisdienst-wiederherstellen neu gestartet wird. Der Nachteil an den vorherigen AD-Versionen ist auch, dass es keine Möglichkeit gibt die AD-Daten die zu verschiedenen Zeitpunkten erstellt wurden zu vergleichen.

Aber: Ein AD-Snapshot ist nicht zur alleinigen Datensicherung geeignet! Er ist nur als Ergänzung gedacht! Denn aus einem AD-Snapshot können Daten bzw. Objekte nur sehr eingeschränkt mit Bordmittel (mit CSVDE oder LDIFDE) oder aufwändig mit Skripts exportiert und in die produktive AD-Umgebung importiert werden.

 


Ein AD-Snapshot erstellen

Für das Erstellen eines AD-Snapshots werden Domänen-Admin Rechte benötigt. Auf einem DC wird ein AD-Snapshot in der Kommandozeile mit NTDSUTIL wie folgt erstellt:

C:\>NTDSUTIL
NTDSUTIL: Snapshot
Snapshot: Activate Instance NTDS
Aktive Instanz wurde auf "NTDS" festgelegt.
Snapshot: Create
Snapshot wird erstellt...
Der Snapshotsatz {5b9dae90-de11-43b2-a8bb-e842b44ffb62} wurde erfolgreich generiert.
Snapshot:


Ein AD-Snapshot lässt sich auch mit einem Einzeiler erzeugen. Fügt man den folgenden Befehl z.B. in eine Batchdatei und lässt in einem geplanten Task die Batch ausführen (mit entsprechenden Rechten), kann man so das Erstellen von AD-Snapshots zusätzlich zur regelmäßigen System State-Sicherung automatisieren:

C:\>NTDSUTIL Snapshot "Activate Instance NTDS" Create quit quit

NTDSUTIL: Snapshot

Snapshot: Activate Instance NTDS

Aktive Instanz wurde auf "NTDS" festgelegt.

Snapshot: Create

Snapshot wird erstellt...

Der Snapshotsatz {5057fdd0-a0fb-427d-b71a-c36a4d22f9c3} wurde erfolgreich generiert.

Snapshot: quit

NTDSUTIL: quit

 
C:\>



Wenn ein AD-Snapshot erstellt wurde, wird in der Ereignisanzeige unter der Serverrolle Active Directory-Domänendienste die Ereignis-ID 2001 mit der Beschreibung
NTDS (528) NTDSA: Schattenkopieinstanz 2: Fixierung wurde gestartet. protokolliert.

 


Die erstellten AD-Snapshots anzeigen

Alle verfügbaren AD-Snapshots die gegenwärtig vom VSS auf einem DC verwaltet werden, lassen sich mit NTDSUTIL wie folgt Anzeigen:

C:\>NTDSUTIL

NTDSUTIL: Snapshot

Snapshot: List All

 1: 2010/05/01:15:23 {ad2cf6fc-6fc4-420b-9d43-104196d67a57}

 2:   C: {41d34055-d61f-41f3-84d7-81b7b4016a8f}

 

 3: 2010/05/02:13:39 {f9675e58-54bb-4a51-be21-60c81c44c286}

 4:   C: {110b7077-5c11-4b93-99e2-31411f6ebd8d}

 

 5: 2010/05/03:21:21 {f747533a-7fd7-4915-a01d-6f59b1f31cb1}

 6:   C: {df0a7738-5d2d-4102-b006-e0c8cc712650}

Snapshot:


Die Ausgabe in diesem Beispiel stellt jeden AD-Snapshot in zwei Zeilen dar. Wie in dem oberen Beispiel zu sehen ist, wurden drei AD-Snapshots erstellt. Sind die AD-Protokolle auf einer anderen Partition gespeichert als die AD-Datenbank, wird eine weitere Zeile angezeigt.

 


Ein AD-Snapshot löschen

Auch wenn man genau weiß welchen AD-Snapshot man löschen möchte, muss man sich zuerst mit List All auf der Snapshot Ebene in NTDSUTIL alle verfügbaren AD-Snapshots anzeigen lassen. Lässt man sich die verfügbaren AD-Snapshots vorher nicht anzeigen und versucht mit einem Einzeiler direkt ein AD-Snapshot zu löschen, so kommt es zu dieser Fehlermeldung:

C:\>NTDSUTIL Snapshot "Delete 4"

NTDSUTIL: Snapshot

Snapshot: Delete 4

Ungültiger Snapshotindex 4.
Snapshot:



Erst wenn man sich alle bestehenden AD-Snapshots anzeigen lässt, kann man ein AD-Snapshot wie folgt löschen:

C:\>NTDSUTIL Snapshot "List All"

NTDSUTIL: Snapshot

Snapshot: List All

 1: 2010/05/01:15:23 {ad2cf6fc-6fc4-420b-9d43-104196d67a57}

 2:   C: {41d34055-d61f-41f3-84d7-81b7b4016a8f}

 

 3: 2010/05/02:13:39 {f9675e58-54bb-4a51-be21-60c81c44c286}

 4:   C: {110b7077-5c11-4b93-99e2-31411f6ebd8d}

 

 5: 2010/05/03:21:21 {f747533a-7fd7-4915-a01d-6f59b1f31cb1}

 6:   C: {df0a7738-5d2d-4102-b006-e0c8cc712650}

 

Snapshot: Delete 4

Der Snapshot {110b7077-5c11-4b93-99e2-31411f6ebd8d} wurde gelöscht.
Snapshot:



Zum Löschen eines AD-Snapshots kann man einen der beiden Zeilen (die zusammen ein AD-Snapshot darstellen) angeben. Mit
Delete 3 kann man ebenfalls dasselbe AD-Snapshot löschen. Anstatt der Nummern kann man auch die GUID angeben. Mit Delete f9675e58-54bb-4a51-be21-60c81c44c286 oder Delete 110b7077-5c11-4b93-99e2-31411f6ebd8d löscht man ebenso dasselbe AD-Snapshot.

Alle AD-Snapshots auf einmal kann man in der Snapshot Ebene mit Delete * löschen.

 


Ein AD-Snapshot verbinden

Möchte man auf ein AD-Snapshot zugreifen, muss man diesen im ersten Schritt verbinden. Im zweiten Schritt muss dann das verbundene AD-Snapshot mit dem Datenbankbereitstellungstool DSAMAIN bereitgestellt werden. Um ein AD-Snapshot zu verbinden, gilt es entweder die Nummer oder die GUID bei Mount anzugeben. Doch zuerst müssen auch an dieser Stelle mit List All alle verfügbaren AD-Snapshots aufgerufen werden. Erst danach lässt sich ein AD-Snapshot folgendermaßen verbinden:

C:\>NTDSUTIL Snapshot „List All“

NTDSUTIL: Snapshot

Snapshot: List All

 1: 2010/05/01:15:23 {ad2cf6fc-6fc4-420b-9d43-104196d67a57}

 2:   C: {41d34055-d61f-41f3-84d7-81b7b4016a8f}

 

 3: 2010/05/03:21:21 {f747533a-7fd7-4915-a01d-6f59b1f31cb1}

 4:   C: {df0a7738-5d2d-4102-b006-e0c8cc712650}

 

Snapshot: Mount 1

Der Snapshot {41d34055-d61f-41f3-84d7-81b7b4016a8f} wird als C:\$SNAP_201005011523_VOLUMEC$\ bereitgestellt.
Snapshot:



Nach dem das AD-Snapshot verbunden ist, wird dadurch auf dem
%Systemdrive% Laufwerk, beginnend mit der Bezeichnung $SNAP<Erstellungsdatum und Uhrzeit> der AD-Snapshot im Dateisystem eingeblendet. Es ist auch möglich, mehrere AD-Snapshots gleichzeitig zu verbinden. Hat man also mit Mount 1 das erste AD-Snapshot verbunden, kann man anschließend mit Mount 3 das nächste AD-Snapshot zeitgleich verbinden, ohne vorher das erste AD-Snapshot zu trennen. Aus Lastgründen ist es jedoch sinnvoll, nicht mehr als zwei AD-Snapshots gleichzeitig zu verbinden bzw. bereitzustellen!

Es ist auch möglich, die AD-Datenbank aus einer System State-Sicherung zu verbinden und anschließend bereitzustellen. Dazu muss die AD-Datenbank an einen alternativen Ort wiederhergestellt werden.

 


Die verbundenen AD-Snapshots anzeigen

Auf der Snapshot Ebene kann man mit List Mounted alle verbundenen AD-Snapshots auflisten:

C:\>NTDSUTIL Snapshot "List Mounted"

NTDSUTIL: Snapshot

Snapshot: List Mounted

 1: 2010/05/01:15:23 {ad2cf6fc-6fc4-420b-9d43-104196d67a57}

 2:   C: {41d34055-d61f-41f3-84d7-81b7b4016a8f} C:\$SNAP_201005011523_VOLUMEC$\

 

 3: 2010/05/03:21:21 {f747533a-7fd7-4915-a01d-6f59b1f31cb1}

 4:   C: {df0a7738-5d2d-4102-b006-e0c8cc712650}

C:\$SNAP_201005032121_VOLUMEC$\

 
Snapshot:



Wie in diesem Beispiel zu sehen ist, sind zwei AD-Snapshots verbunden.

 


Ein verbundenes AD-Snapshot trennen

Um ein AD-Snaphot zu trennen, muss man auch an dieser Stelle zuerst alle verbundenen AD-Snapshots mit List Mounted anzeigen lassen, ehe man ein oder alle verbundenen AD-Snapshots trennen kann.

C:\>NTDSUTIL Snapshot "List Mounted"

NTDSUTIL: Snapshot

Snapshot: List Mounted

 1: 2010/05/08:14:35 {95c31025-b317-4df6-a7a5-767d0ddbc771}

 2:   C: {65971d9e-5608-46a9-ab92-043d73b4a6af} C:\$SNAP_201005081435_VOLUMEC$\

 

 3: 2010/05/08:17:11 {fef7ad30-a129-466c-9a37-09f2f4e50d84}

 4:   C: {8fcee771-b002-46aa-a878-7e2d9519eaf3} C:\$SNAP_201005081711_VOLUMEC$\

 

Snapshot: Unmount 1

Die Bereitstellung des Snapshots {65971d9e-5608-46a9-ab92-043d73b4a6af} wurde au

fgehoben.

Snapshot:


Sind mehrere AD-Snapshots verbunden, kann man alle auf einmal in der Snapshot Ebene mit Unmount * gleichzeitig trennen.

 


Ein AD-Snapshot mit dem Datenbankbereitstellungstool DSAMAIN bereitstellen

Damit man auf ein AD-Snapshot mit dem man sich bereits verbunden hat zugreifen kann, muss dieser parallel zur lokalen Kopie der AD-Datenbank auf dem DC als zusätzlicher Verzeichnisdienst geladen werden. Deshalb sollte man in einer separaten Eingabeaufforderung mit dem Datenbankbereitstellungstool DSAMAIN, das verbundene AD-Snapshot das mithilfe von NTDSUTIL erstellt wurde bereitstellen. Anschließend kann man dann mit einem LDAP-Tool wie z.B. Active Directory-Benutzer und -Computer, ADSIEdit oder LDP den AD-Snapshot wie jeden anderen aktiven DC durchsuchen oder mit CSVDE bzw. LDIFDE Inhalte exportieren.

Damit das AD-Snapshot bereitgestellt werden kann, muss dieser Befehl in der Kommandozeile eingegeben werden: DSAMain -DBPath <Pfad zur NTDS.dit> -LDAPPORT <ausgewählter LDAP-Port>. Bei dem Parameter -DBPath muss der Pfad zur AD-Datenbank das sich im verbundenen AD-Snapshot befindet angegeben werden. Bei -LDAPPort muss mindestens ein Port spezifiziert werden, über den die parallele AD-Instanz zur Verfügung gestellt wird. Standardmäßig benötigt das AD vier LDAP-Ports, nämlich 389 für LDAP, 636 für LDAP über SSL/TLS, 3268 für den globalen Katalog (GC) und 3269 für den GC über SSL. Da standardmäßig diese vier Ports von dem eigentlichen produktiven AD auf einem DC benutzt werden, ist es zwingend notwendig für das Bereitstellen des AD-Snapshots einen anderen, eigens ausgewählten verfügbaren Port zu wählen. Gibt man lediglich für den erforderlichen LDAPPort den Port 30000 an, wird automatisch für LDAPS der Port 30001, für den GC 30002 und für den GC über SSL der Port 30003 reserviert.


 


Der Befehl zum Bereitstellen eines AD-Snapshots muss mindestens so aussehen:

DSAMain -DBPath C:\$SNAP_201005091521_VOLUMEC$\Windows\NTDS\NTDS.dit -LDAPPort 30000


Möchte man alle benötigten LDAP-Ports selbst spezifizieren, so lautet der Befehl wie folgt:

DSAMain -DBPath C:\$SNAP_201005091521_VOLUMEC$\Windows\NTDS\NTDS.dit -LDAPPort 30000 -sslPort 30100 -gcPort 30200 -gcSslPort 30300



Wenn ein AD-Snapshot bereitgestellt wurde, wird in der Ereignisanzeige unter der Serverrolle Active Directory-Domänendienste die Ereignis-ID 102 mit der Beschreibung NTDS (2924) NTDSA: Das Datenbankmodul (6.01.7600.0000) hat eine neue Instanz gestartet (0).protokolliert. Wird die Bereitstellung aufgehoben, so wird die Ereignis-ID 103 verzeichnet.

Nach durchgeführter Arbeit, kann die Bereitstellung der zusätzlichen AD-Instanz mit CTRL+C beendet werden und man sollte noch mit Unmount * das bzw. die verbundenen AD-Snapshots trennen.

 


Auf den AD-Snapshot zugreifen

  • Wenn der AD-Snapshot bereitgestellt ist, kann man ihn mit der MMC dsa.msc betrachten, in dem man zuerst auf den Eintrag Active Directory-Benutzer und -Computer [FQDN des DCs] mit einem Rechtsklick die Option Domänencontroller ändern… aufruft. Danach wählt man die Option Bestimmter Domänencontroller oder AD LDS-Instanz aus und trägt den Computernamen, FQDN oder die IP-Adresse des DCs ein, auf dem der AD-Snapshot bereitgestellt wurde. Dabei ist zu beachten: Egal welches Tool verwendet wird, es ist zwingend notwendig das man den für die zusätzliche AD-Instanz vergebenen LDAP-Port stets mit angibt!





    Die MMC dsa.msc eignet sich ideal um den AD-Datenbestand zum Erstellungszeitpunkt des AD-Snapshots zu durchforsten, aber nicht um Inhalte zu exportieren um diese dann in die produktive Umgebung zu importieren.


  • Einen Export kann man mit Bordmittel ebenfalls durchführen, nämlich mit CSVDE und LDIFDE. Natürlich lassen sich auch durch eigene Skripte Daten exportieren. Ein Export aller Benutzer mit lediglich den gewünschten Attributen aus einer bestimmten OU, könnte mit CSVDE wie folgt aussehen:

    CSVDE -S <DC> -T <vergebener LDAP-Port> -D „OU=<OU>,DC=Domäne,DC=de“ -R „(sAMAccountType=805306368)“ -L “<gewünschteAttribute>” -P Subtree -M -N -U -F „C:\ADFoto.csv“


    Nach dem Export kann man die CSV-Datei zur weiteren Bearbeitung in Excel importieren. Hat man die Bearbeitung der Datendatei fertiggestellt, kann man dann mit dem folgenden Befehl den Import in der produktiven AD-Umgebung durchführen:

    CSVDE -I –K -F „C:\Datendatei.csv“


    Beim Import in der produktiven AD-Umgebung mit CSVDE gilt es jedoch zu beachten, dass man dieses Kommandozeilentool nicht für die Bearbeitung bestehender Objekte einsetzen kann! Zum Bearbeiten bestehender Objekte bietet sich das Kommandozeilentool LDIFDE an, dass ähnlich wie CSVDE funktioniert. Mit LDIFDE könnte man einen Export aus dem AD-Snapshot folgendermaßen gestalten:

    LDIFDE -S <DC> -T <vergebener LDAP-Port> -D „OU=<OU>,DC=Domäne,DC=de“ -R „(sAMAccountType=805306368)“ -L “<gewünschteAttribute>” -P Subtree -M -N -F „C:\Export.ldf“


    Auch mit diesem Befehl werden alle Benutzer aus der angegebenen OU, mit den gewünschten Attributen aus der Momentaufnahme exportiert. Hat man die gewünschten Informationen aus dem AD-Snapshot exportiert, kann man diese wie folgt in die produktive Umgebung importieren:

    LDIFDE -I -K -Z -F „C:\Import.ldf“


    LDIFDE - LDAP Data Interchange Format Data Exchange


  • Auch mit den ds*-Tools kann man auf den AD-Snapshot zugreifen. Dabei muss man lediglich den Parameter -S mit dem Wert <FQDN des DCs>:<vergebener LDAP-Port> zusätzlich zur Abfrage angeben. Eine Abfrage die alle Benutzer einer bestimmten OU anzeigt, sieht so aus:

    Dsquery * "OU=<OU>,DC=Domäne,DC=de" -Filter "(sAMAccountType=805306368)" -Attr * -Server <FQDN des DCs>:30000 -Limit 0


  • Natürlich kann man auch mit dem State of the Art Werkzeug, nämlich der AD-PowerShell auf die Momentaufnahme zugreifen und Daten daraus exportieren. Doch bevor man mit der AD-PowerShell auf die Momentaufnahme zugreifen kann, muss wie gehabt zuerst in NTDSUTIL das AD-Snapshot verbunden und mit DSAMain bereitgestellt werden. Ist der AD-Snapshot bereitgestellt, muss man in der AD-PowerShell als nächstes ein AD-PowerShell-Laufwerk erstellen. Mit dem folgenden AD-PowerShellbefehl wird ein Laufwerk, basierend auf dem AD-Snapshot erstellt:

    New-PSDrive -Name <frei wählbarer Laufwerksname> -PSProvider ActiveDirectory -Root "" -Server <DC.Domäne.de>:<vergebener LDAP-Port>


    Hat man das AD-PowerShell-Laufwerk erstellt, muss man mit cd <vergebener Laufwerksname>: auf das Laufwerk wechseln.






    Anschließend kann man mit
    cd "<DN der Domänenpartition>" zur Domänenpartition, also auf die Verzeichnispartition in der die Benutzer-, Gruppen- und Computerkonten enthalten sind wechseln.





    Nun kann man sich mit den entsprechenden AD-PowerShellabfragen die gewünschten Informationen ausgeben lassen oder im Zusammenhang mit dem Cmdlet Export-CSV, einen Export der gewünschten Daten in eine CSV-Datei durchführen. Z.B. kann man alle Benutzer aus einer OU mit allen Eigenschaften wie folgt exportieren:

    Get-ADUser -Filter * -Searchbase "OU=<OU>,DC=Domäne,DC=de" -Properties * | Export-Csv C:\Export.txt -NoTypeInformation


    Man muss aber nicht zwangsläufig zuerst ein neues AD-PowerShell-Laufwerk erstellen! Stattdessen kann man auch, nach dem der AD-Snapshot mit DSAMain bereitgestellt wurde, alle Benutzer aus einer OU mit allen Eigenschaften wie folgt exportieren:

    Get-ADUser -Filter * -Searchbase "OU=<OU>,DC=Domäne,DC=de" -Properties * -Server <FQDN des DCs>:<vergebener LDAP-Port> | Export-Csv C:\Export.txt -NoTypeInformation



    Massenimporte- und -exporte mit CSVDE und der AD-PowerShell durchführen

    AD-PowerShell Befehle

 


Nützliche Werkzeuge


Der ADExplorer

Ein hilfreiches Werkzeug im Zusammenhang mit AD-Snapshots stellt der ADExplorer dar. Mit diesem Tool ist es unter anderem zum einen möglich, AD-Snapshots auf Knopfdruck zu erstellen und zum anderen, zwei AD-Snapshots miteinander zu vergleichen. Dabei kann jedoch ein AD-Snapshot weder mit der aktuellen AD-Datenbank, noch mit mehreren AD-Snapshots gleichzeitig verglichen werden! Was das Erstellen und verwalten eines AD-Snapshots mit dem ADExplorer betrifft, gestaltet sich das mit dem Tool bemerkenswert einfacher als mit NTDSUTIL!

Zum Erstellen eines AD-Snapshots startet man den ADExplorer und trägt im Feld Connect to den DC ein mit dem eine Verbindung hergestellt werden soll. In den Feldern User und Password gibt man die entsprechenden Benutzerdaten ein. Führt man stattdessen den ADExplorer direkt auf einem DC aus, muss keins der Felder ausgefüllt werden. Dann verbindet sich der ADExplorer automatisch mit dem DC auf dem es ausgeführt wird und verwendet die Benutzerinformationen, mit dem das Tool gestartet wurde. Nach dem sich der ADExplorer mit dem DC, genauer mit der AD-Datenbank verbunden hat, klickt man entweder in der Symbolleiste auf das Diskettensymbol oder im Menü unter File auf Create Snapshot… um eine Momentaufnahme der AD-Datenbank zu erstellen. Im Feld Specify the path to the snapshot file muss der Pfad inklusive des Dateinamen angegeben werden, in dem das AD-Snapshot erstellt werden soll. Bei dem Dateinamen ist zwingend darauf zu achten, dass die Dateiendung DAT lautet. Zusätzlich kann im Feld Enter an optional description for the snapshot eine Beschreibung angegeben werden, was aber nicht zwingend ist.



Die DAT-Datei die erstellt wurde kann nun auf ein anderes System, das keine Verbindung zur produktiven Umgebung hat transportiert und von dort aus mit dem ADExplorer analysiert werden. Das ist auf der einen Seite zwar ein wesentlicher Vorteil gegenüber NTDSUTIL, hat aber auch auf der anderen Seite einen gravierenden Nachteil! Das AD-Snapshot das mit NTDSUTIL erstellt wurde benötigt die Verbindung zur produktiven Umgebung, um die Momentaufnahme rekonstruieren zu können. Somit kann das AD-Snapshot nicht einfach kopiert und irgendwohin transportiert werden. Das AD-Snapshot das mit dem ADExplorer erstellt wurde benötigt hingegen keine Verbindung zur produktiven Umgebung und befindet sich in genau einer DAT-Datei. Das stellt natürlich ein hohes Sicherheitsrisiko dar! Deshalb ist bei den AD-Snapshots die mit dem ADExplorer erstellt wurden die gleiche Sicherheit zu gewähren, wie der physikalische Zugriff auf DCs oder den Datensicherungen!

Um auf ein AD-Snapshot (die DAT-Datei) zuzugreifen, startet man den ADExplorer, wählt die Option Enter the path of a previous snapshot to load aus und trägt den Pfad zur DAT-Datei ein oder navigiert dorthin. Ist man mit dem ADExplorer bereits mit dem produktiven AD verbunden, kann man sich zusätzlich mit ein oder mehreren AD-Snapshots (nacheinander) unter File - Connect… verbinden. Das eignet sich ideal für das schnelle überprüfen von vorherigen Datenbeständen. Hat man z.B. bei ein oder mehreren Objekten in der produktiven Umgebung Werte versehentlich verändert, kann man mit dem ADExplorer nachschauen welche Werte vorher eingetragen waren, in dem man sich mit dem produktiven AD und einem AD-Snapshot verbindet.

Das Löschen eines AD-Snapshots das mit dem ADExplorer erstellt wurde gestaltet sich ebenfalls einfacher als mit der NTDSUTIL-Variante. Es muss lediglich die DAT-Datei vom Dateisystem gelöscht werden.


Möchte man zwei AD-Snapshots miteinander vergleichen, startet man den ADExplorer mit der Option Enter the path of a previous snapshot to load und gibt das Quell-AD-Snapshot an. Anschließend wählt man im Menü Compare - Compare Snapshot… und gibt im Feld Select an archive to compare to das Ziel-AD-Snapshot an. Sollen nur ausgewählte Klassen und bestimmte Felder bzw. Attribute miteinander verglichen werden, so muss man diese in den beiden unteren Bereichen auswählen.



Mit einem Klick auf Compare werden beide AD-Snapshots verglichen und wenn unterschiede vorhanden sind, werden diese angezeigt.


AD Explorer

 


Das Directory Service Comparison Tool (DSCT)

Ein weiteres nützliches Werkzeug, das mehr Funktionen als der ADExplorer bietet ist das DSCT. Die Beschreibung zu dem Tool sowie den Download findet man auf der folgenden Seite:

Directory Service Comparison Tool 2.0 B3

 


Fazit

Die AD-Snapshots sind eine hervorragende Technik, die die AD-Sicherung sowie -Wiederherstellung ergänzt. Zum Wiederherstellen von AD-Informationen muss der DC nicht erst im Modus Verzeichnisdienste wiederherstellen gestartet werden. Die Wiederherstellung kann im laufenden Betrieb, ohne Beeinträchtigung, mit der AD-Snapshot Funktion erfolgen. Auch für das Vergleichen verschiedener Datenbestände eignet sich diese Technik. Außerdem können aus einem AD-Snapshot gezielt (einzelne) Werte exportiert und in die produktive Umgebung importiert werden. Gerade ab Windows Server 2008 R2 mit dem AD-Papierkorb und der bestehenden AD-Sicherung rundet diese Technik die AD-Wiederherstellung ab! Denn mit dem aktivierten AD-Papierkorb können zwar gelöschte Objekte ohne Datenverlust wiederhergestellt werden, nicht jedoch einzelne Werte. Dazu eignet sich ein AD-Snapshot.

 

 

Weitere Informationen:
Der Active Directory-Papierkorb im Windows Server 2008 R2
Active Directory Wiederherstellung
Der Container Deleted Objects

Sunday, May 30, 2010 9:10:23 AM (W. Europe Standard Time, UTC+01:00)  #      Active Directory | Wiederherstellung  | 
Copyright © 2012 Yusuf Dikmenoglu. All rights reserved.
DasBlog 'Portal' theme by Johnny Hughes.
Pick a theme: