Einführung
Jeder Domänencontroller in einem Windows-Netzwerk besitzen eine Ordnerfreigabe namens SYSVOL
. Diese dient zur Replikation von Skripten und Gruppenrichtlinien zu anderen Domänencontroller. Der zugrunde liegende Replikationsmechanismus basiert ab Windows Server 2008 auf dem File Distributed File Replication Service (DFRS). Bis Windows Server 2016 wurde auch der ältere Replikationsmechanismus File Replication Service (FRS) unterstützt.
Wer bisher Windows Server 2016 (oder älter) als Domänencontroller im Einsatz hatte, dessen Replikation basiert unter Umständen noch auf FRS. Wer nun einen Windows Server 2019 oder 2022 als sekundären Domänencontroller hinzufügen möchte, der bekommt eine fette Meldung präsentiert, dass das so nicht geht, da der eigene Server kein FSR unterstützt.
In diesem Fall bleibt uns nichts weiter übrig, als den Replikationsmechanismus auf DFRS zu migrieren.
Migration durchführen
Das Werkzeug zur Durchführung der Migration hört auf den Namen Dfsrmig.exe.
Mit Dfsrmig.exe
kannst Du die Migration in drei Schritten bei laufendem Betrieb durchführen:
- Schritt 1 = Übergang zum Migrationsstatus
Prepared
: In diesem Status wird DFSR parallel zu FRS aktiviert. DFSR legt eine eigene Kopie desSYSVOL
-Ordners unterSYSVOL_DFRS
an, macht sonsts aber erstmal gar nichts. - Schritt 2 = Übergang zum Migrationsstatus
Redirected
: In diesem Status beginnt DFSR mit der Arbeit und nimmt Replikationsanfragen entgegen.SYSVOL_DFRS
wird zum Hauptordner. FRS bleibt aber noch aktiv und arbeitet parallel mit seinem altenSYSVOL
-Ordner. - Schritt 3 = Übergang zum Migrationsstatus
Eliminated
: In diesem Status geht DFSR weiter seiner Arbeit nach. FRS wird jedoch deaktiviert und der alteSYSVOL
-Ordner gelöscht.
Die Aufteilung in drei separate Schritte erlaubt eine Rollback-Migration im Fall eines Fehlers.
Soweit zur Theorie, wir wollen jetzt die Migration in der Praxis sehen. Wir gehen dabei von folgender Beispielkonfiguration aus:
- Domäne:
intranet.beispiel.at
- Primärer Domänencontroller:
DC01
- Sekundärer Domänencontroller:
DC02
Schritt 1: Vorbereiten (Prepare)
Als erstes prüfen wir, ob die aktuelle Replikation unter FSR in Ordnung ist.
Dazu auf dem Server DC01
die Eingabeaufforderung als Administrator starten und folgendes eintippen:
net share
Die Ausgabe sollte in etwa wie folgt aussehen:
Name Ressource Beschreibung
-------------------------------------------------------------------------------
C$ C:\ Standardfreigabe
IPC$ Remote-IPC
ADMIN$ C:\Windows Remoteverwaltung
NETLOGON C:\Windows\SYSVOL\sysvol\intranet.beispiel.at\SCRIPTS
Ressource für Anmeldeserver
SYSVOL C:\Windows\SYSVOL\sysvol Ressource für Anmeldeserver
Der Befehl wurde erfolgreich ausgeführt.
Das sieht gut aus, die Netzwerkfreigabe SYSVOL
ist wie gewünscht vorhanden.
Ein weitere Prüfung:
dfsrmig /getglobalstate
Die Ausgabe sollte wie folgt aussehen:
Die DFSR-Migration wurde noch nicht initialisiert. Legen Sie den
globalen Status auf den gewünschten Wert fest, um die Migration zu starten.
Wir haben dfsrmig
gestartet und den aktuellen Status der Migration abgefragt. Die Antwort ist wie erwartet, eine Migration wurde also noch nicht durchgeführt.
Jetzt starten wir den Migrationsprozess, in dem wir den Status auf 1
(Prepared) setzen:
dfsrmig /setglobalstate 1
Die Ausgabe sollte wie folgt aussehen:
Aktueller globaler DFSR-Status: "Starten"
Neuer globaler DFSR-Status: "Vorbereitet"
Die Migration wechselt in den Status "Vorbereitet". Der DFSR-Dienst
kopiert den Inhalt von SYSVOL in den Ordner SYSVOL_DFSR.
Falls die Migration von einem Domänencontroller nicht gestartet werden kann, versuchen Sie es mit einem manuellen Abruf.
Alternativ können Sie den Befehl mit der Option "/CreateGlobalObjects" ausführen.
Die Migration kann in einem beliebigen Zeitraum
zwischen 15 Min. und 1 Stunde gestartet werden.
Erfolgreich
Unmittelbar danach überprüfen wir den Migrationsstatus:
dfsrmig /getmigrationstate
Es dauert eine Weile, bis alle Domänencontroller den Status übernommen haben. Daher sieht die Ausgabe wahrscheinlich wie folgt aus:
Die folgenden Domänencontroller haben den globalen Status (""Vorbereitet"") nicht erreicht:
Domänencontroller (lokaler Migrationsstatus) - Domänencontrollertyp
===================================================================
DC01 ("Starten") - Primary DC
DC02 ("Starten") - Writable DC
Die Migration hat noch nicht auf allen Domänencontrollern einen konsistenten Status erreicht.
Möglicherweise sind die Statusinformationen aufgrund der Wartezeit der Active Directory-Domänendienste veraltet.
Diese Abfrage können wir beliebig oft wiederholen. Irgendwann bekommen wir diese Ausgabe:
Alle Domänencontroller wurden erfolgreich zum globalen Status (""Vorbereitet"") migriert.
Die Migration hat auf allen Domänencontrollern einen konsistenten Status erreicht.
Erfolgreich
Mit Schritt 1 sind wir fertig.
Schritt 2: Umleiten (Redirect)
Jetzt wollen wir den Status auf 2
(Redirected) setzen:
dfsrmig /setglobalstate 2
Die Ausgabe sollte wie folgt aussehen:
Aktueller globaler DFSR-Status: "Vorbereitet"
Neuer globaler DFSR-Status: "Umgeleitet"
Die Migration wechselt in den Status "Umgeleitet". Die Freigabe "SYSVOL"
wird zum Ordner "SYSVOL_DFSR" geändert,
der mithilfe von DFSR repliziert wird.
Erfolgreich
Wir prüfen wieder den Migrationsstatus:
dfsrmig /getmigrationstate
Zunächst bekommen wir folgende Ausgabe:
Die folgenden Domänencontroller haben den globalen Status (""Umgeleitet"") nicht erreicht:
Domänencontroller (lokaler Migrationsstatus) - Domänencontrollertyp
===================================================================
DC01 ("Vorbereitet") - Primary DC
DC02 ("Vorbereitet") - Writable DC
Die Migration hat noch nicht auf allen Domänencontrollern einen konsistenten Status erreicht.
Möglicherweise sind die Statusinformationen aufgrund der Wartezeit der Active Directory-Domänendienste veraltet.
Wenn alle Domänencontroller den Migrationsstatus übernommen haben, dann diese Ausgabe:
Alle Domänencontroller wurden erfolgreich zum globalen Status (""Umgeleitet"") migriert.
Die Migration hat auf allen Domänencontrollern einen konsistenten Status erreicht.
Erfolgreich
Mit Schritt 2 sind wir fertig.
Schritt 3: Beseitigen (Eliminate)
Zu guter Letzt wollen wir den Status auf 3
(Eliminate) setzen:
dfsrmig /setglobalstate 3
Die Ausgabe sollte wie folgt aussehen:
Aktueller globaler DFSR-Status: "Umgeleitet"
Neuer globaler DFSR-Status: "Entfernt"
Die Migration wechselt in den Status "Entfernt". Es ist nicht möglich,
diesen Schritt rückgängig zu machen.
Verwenden Sie die Option "/DeleteRoNtfrsMembers", wenn ein schreibgeschützter Domänencontroller
zu lange im Status "Wird entfernt" verbleibt.
Erfolgreich
Wir prüfen wieder den Migrationsstatus:
dfsrmig /getmigrationstate
Und auch hier, erst so:
Die folgenden Domänencontroller haben den globalen Status (""Entfernt"") nicht erreicht:
Domänencontroller (lokaler Migrationsstatus) - Domänencontrollertyp
===================================================================
DC01 ("Umgeleitet") - Primary DC
DC02 ("Umgeleitet") - Writable DC
Die Migration hat noch nicht auf allen Domänencontrollern einen konsistenten Status erreicht.
Möglicherweise sind die Statusinformationen aufgrund der Wartezeit der Active Directory-Domänendienste veraltet.
Später dann so:
Alle Domänencontroller wurden erfolgreich zum globalen Status (""Entfernt"") migriert.
Die Migration hat auf allen Domänencontrollern einen konsistenten Status erreicht.
Erfolgreich
Mit dem letzten Schritt 3 sind wir fertig.
Abschließende Überprüfung
Werfen wir wieder einen Blick auf unsere Netzwerkfreigaben:
net share
Die Ausgabe sollte in etwa wie folgt aussehen:
Name Ressource Beschreibung
-------------------------------------------------------------------------------
C$ C:\ Standardfreigabe
IPC$ Remote-IPC
ADMIN$ C:\Windows Remoteverwaltung
NETLOGON C:\Windows\SYSVOL_DFSR\sysvol\intranet.beispiel.de\SCRIPTS
Ressource für Anmeldeserver
SYSVOL C:\Windows\SYSVOL_DFSR\sysvol Ressource für Anmeldeserver
Der Befehl wurde erfolgreich ausgeführt.
Der Name der Netzwerkfreigabe ist gleich geblieben, aber der verknüpfte Ordner lautet nun SYSVOL_DFSR
. So war es ja geplant, also alles ok.
Eine abschließende Prüfung soll sicherstellen, dass der Dienst für FSR deaktiviert ist.
sc query NtFrs
Die Ausgabe sollte so aussehen:
SERVICE_NAME: NtFrs
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
Content retrieved from: https://blog.stueber.de/posts/sysvol-dfsr-migration/.