Windows Server 2003 i 2003 R2 to relikty przeszłości, ale z jakiegoś powodu czasami niektórzy je nadal wykorzystują (pomimo braku wsparcia, aktualizacji, braku możliwości migracji systemu itd.). Czasami tak bywa i trzeba się z tym liczyć, więc warto też wiedzieć jak przenieść obiekty w AD do systemu z tego aktualnego dziesięciolecia (co prawda końcówki, ale nadal).
W tym poście postaram się przedstawić najgorszy przypadek, jaki jest do migracji i właściwie jej cały proces. Teoretycznie można robić downgrade Windowsa Server do niższej wersji jeśli się zamówi do tego nośnik, ale po co? Mamy nowy sprzęt, mamy nowy system, więc dlaczego to zmieniać? Najlepiej się moim zdaniem trzymać nowszych systemów z prostego powodu – ich wsparcie się kończy później.
Okej, w takim razie moje środowisko wygląda tak:
- Domena: supra.local
- Nazwa hosta z Windowsem Server 2003: ad-2003
- Adres IP ad-2003: 192.168.162.10/24
- Nazwa hosta z Windowsem Server 2008 R2: ad-2008-r2
- Adres IP ad-2008-r2: 192.168.162.11/24
- Nazwa hosta z Windowsem Server 2019: ad-2019
- Domena supra.local znajduje się na ad-2003 (pełni on rolę kontrolera domeny AD)
Przeniesienie domeny bezpośrednio na Windowsa Server 2019 nie jest możliwe ze względu na to, że Windows Server 2019 nie wspiera SMB 1.0. Co prawda, można ją włączyć, ale to i tak nic nie da, bo jeszcze trzeba zmienić metodę replikacji danych pomiędzy kontrolerami z FRS na DFSR, gdzie DFSR nie jest wspierany przez Windowsa Server 2003. Jest on dostępny dopiero w Windowsie Server 2003 R2. W naszym scenariuszu postawimy tymczasowo Windowsa Server 2008 R2, przeniesiemy na niego domenę, a potem przeniesiemy domenę z 2008 R2 na 2019.
W tym poście pominę zrzuty ekranu z tego, jak się stawia kontroler domeny – będąc szczerym nie robiłem ich w momencie, gdy pisałem sobie notatki w tym zakresie. Tak czy siak, tym od czego należy zacząć jest instalacja Windowsa Server 2008 R2 (najlepiej na maszynie wirtualnej, potem można jej się szybko pozbyć). Na niej zmieniamy nazwę hosta na taką, jaką chcemy (w moim przypadku jest to ad-2008-r2 dla łatwiejszego zrozumienia jaki system na jakim etapie jest wykorzystywany), następnie ustawiamy statyczne adresy IP dla nowego serwera. W moim przypadku będzie to 192.168.162.11/24, poza tym serwerem DNS będzie adres aktualnego kontrolera domeny – 192.168.162.10. Po tym podłączamy ją do domeny (w moim przypadku supra.local podając uprawnienia do konta pozwalającego na dodanie do domeny nowego komputera.
Następnie instalujemy na nim rolę Usługi domenowe w usłudze Active Directory, to też nam zainstaluje Serwer DNS. W Windows Server 2008 (R2) można uruchomić kreatora promocji serwera do kontrolera domeny za pomocą polecenia dcpromo.exe
i to też zrobiłbym, ale bez żadnego przygotowania można spotkać się z takim komunikatem w trakcie dodawania drugiego kontrolera domeny:
Na tym etapie powinniśmy przygotować strukturę lasu i domeny do umożliwienia stworzenia kontrolera domeny na Windowsie Server 2008 R2. Do tego musimy:
- Sprawdzić jaki mamy aktualnie poziom funkcjonalności domeny i lasu. Domyślnie to jest Windows Server 2000 Local, należy go zmienić na Windows Server 2003. Na dobrą sprawę wystarczy ustawić Windows Server 2000 Mixed, ale w moim przypadku nie był on dostępny w opcjach. Na ten moment wystarczy zmiana samego poziomu domeny.
- Podłączyć do napędu ad-2003 płytę instalacyjną Windowsa Server 2008 R2 (w moim przypadku napęd jest pod literą D:).
- Otworzyć Wiersz polecenia jako Administrator, przejść do lokalizacji
<litera-dysku>:\support\adprep
, a następnie wykonać polecenieadprep32.exe /forestprep
(lubadprep.exe /forestprep
w przypadku 64-bitowego Windowsa Server 2003).
Następnie musimy przygotować domenę tak samo jak las, więc uruchamiamy polecenie adprep32.exe /forestprep
(lub adprep.exe /domainprep
w przypadku 64-bitowego Windowsa Server 2003).
Po tym powinno się podać parametry /gpprep
i /rodcprep
, więc wykonujemy adprep32.exe /gpprep
, a potem adprep32.exe /rodcprep
(jak mamy wersję 64-bitową, program to adprep.exe
jak w poprzednich poleceniach).
Po tym możemy ponownie odpalić Kreator instalacji usług domenowych Active Directory i tym razem nie powinno być problemu z dodaniem kontrolera domeny na Windowsie Server 2008 R2.
Okej, jak kontroler się postawi to trzeba standardowo zrobić restart systemu. Teraz trzeba się zabrać za podniesienie poziomu domeny, przeniesienie ról głównego kontrolera domeny na ad-2008-r2 i pozbycie się ad-2003. Na początku zaczniemy od podniesienia poziomu funkcjonalności lasu do Windowsa Server 2003. Można to zrobić w Domeny i relacje zaufania usługi Active Directory. Po otwarciu musimy kliknąć na główne drzewko, które się nazywa tak samo jak okno, wybrać Podnieś poziom funkcjonalności lasu…, a następnie wybrać Windows Server 2003.
Teraz możemy zająć się przenoszeniem ról głównego kontrolera domeny. Upewnij się, że jesteś zalogowany na koncie administratora (dosłownie Administrator) i uruchom polecenie regsvr32 schmmgmt.dll
.
To nam doda nową przystawkę do MMC – Schemat usługi Active Directory. Uruchom konsolę MMC poprzez polecenie mmc
, kliknij Plik -> Dodaj/Usuń przystawkę… i wybierz z listy wspomnianą, a następnie kliknij przycisk Dodaj.
Następnie musisz zmienić kontroler domeny, z którego wykonujesz czynność, bo założenie jest takie, że z jego poziomu możesz kliknąć Zmień…. Tak będzie ogólnie z każdym wzorcem operacji, który musimy zmienić, a jest ich 5:
- Wzorzec schematu,
- Wzorzec nazw domen,
- Podstawowy kontroler domeny,
- Menedżer puli RID,
- Wzorzec infrastruktury.
W Schemacie usługi Active Directory zmieniamy wzorzec schematu. Na początku tak jak pisałem kontroler domeny wybierając PPM na początek drzewka, który nazywa się tak samo jak podstawka i wybieramy Zmień kontrolera domeny usługi Active Directory…, a następnie wybieramy nowy kontroler domeny, w moim przypadku ad-2008-r2. Następnie ponownie klikamy PPM na początek drzewka, lecz tym razem wybieramy Wzorzec operacji… i klikamy Zmień…. Zostaniemy spytani, czy na pewno chcemy przenieść wzorzec na taki host i to musimy zatwierdzić. Niestety, z tego etapu nie mam zrzutu ekranu 🙁
Tak czy siak, teraz musimy przenieść wzorzec nazw domen i to robimy w Domeny i relacje zaufania usługi Active Directory. Zmieniamy kontroler domeny, otwieramy opcje zmiany wzorca operacji w taki sam sposób, jak poprzednio, klikamy Zmień… i w ten sposób wzorzec nazw domen mamy za sobą.
Teraz pora na pozostałe 3 komponenty. Te zmieniamy w Użytkownicy i komputery usługi Active Directory klikając na drzewko z nazwą naszej domeny (w moim przypadku supra.local) prawym przyciskiem myszy, zmieniamy kontroler domeny na ad-2008-r2 i podobnie jak poprzednio wybieramy Wzorce operacji…. Tutaj na każdej karcie musimy kliknąć Zmień… i zatwierdzić.
Tym sposobem wszystkie role głównego kontrolera domeny zostały przeniesione. Teraz pora pozbyć się hosta z WS 2003. Przed samym wyłączeniem funkcji zmieniam jeszcze wpis w _mscds.supra.local i wpisuję tutaj IP nowego kontrolera domeny. Czasami po zdjęciu funkcji kontolera domeny ten wpis nie jest zmieniany.
Okej, usunięcie roli kontrolera domeny jest dosyć proste, bo trzeba uruchomić kreator poleceniem dcpromo.exe (dokładnie tak jak byśmy promowali serwer do roli kontrolera domeny), lecz w kreatorze będziemy pytani o inne rzeczy. W tym kreatorze padnie pytanie czy to ostatni kontroler domeny – pod żadnym pozorem nie zaznaczajcie tej opcji. Z tego, co pamiętam ona spowoduje usunięcie wszystkiego w DNSie związanego z całą domeną i nie wiem szczerze co to zrobi bazą LDAP (obstawiam, że ją usunie).
Następne pytanie w kreatorze to to, czy usunąć wpisy w DNS dotyczące tego serwera i tutaj warto zaznaczyć. Czasami i tak ten kreator tego nie zrobi i wtedy musimy usuwać wszystkie odwołania do starego kontrolera domeny, ale jeśli to się stanie to przynajmniej mamy mniej roboty. UWAGA: to czasami się wykrzacza i trzeba pousuwać wpisy ręcznie.
Po tym możemy rozpocząć proces usuwania roli kontrolera domeny. I tym oto sposobem możemy usunąć z domeny starego Windowsa. Następnie zmieńmy poziom funkcjonalności domeny i lasu do Windowsa Server 2008 R2 (najwyższego, jaki jesteśmy w stanie osiągnąć aktualnie). Robimy to tak samo, jak poprzednio. Robimy to dlatego, bo nowsze wersje Windowsa Server wymagają DFSR do replikacji obiektów w domenie (gdzie w starszych wersjach odbywa się to za pomocą mechanizmu FSR).
Na samym początku sprawdźmy, czy stan naszej domeny jest poprawny. Robimy to odpalając z poziomu Wiersza poleceń z uprawnieniami administratora polecenie dcdiag /e /test:sysvolcheck /test:advertising
.
W moim przypadku wszystko jest okej, więc przejdę dalej. Następnie musimy przejść przez 3-etapowy proces migracji z FSR do DFSR. To nie jest nic skomplikowanego, ale czasami to trochę trwa. Na samym początku zaczynamy poleceniem dfsrmig /setglobalstate 1
. To ustawia status globalny DFSR na „prepared”. Po wykonaniu polecenia możemy sprawdzać status wykonania poleceniem dfsrmig /getmigrationstate
. Poniżej efekty z tego, jak to wygląda gdy etap migracji nie został zakończony i gdy mamy już go za sobą.
Następnie uruchamiamy przejście na drugi etap migracji „redirected” poleceniem dfsrmig /setglobalstate 2
. Gdy to się skończy, powtarzamy operację dla trzeciego etapu „eliminated”, oczywiście za pomocą polecenia dfsrmig /setglobalstate 3
. Status migracji sprawdzamy tak samo jak w poprzednich etapach – poleceniem dfsrmig /getmigrationstate
.
Gdy po ostatniej zmianie mamy informację, że wszystko jest okej, możemy przejść do przeniesienia funkcji na nowego hosta z Windowsem Server 2019, czyli ad-2019
. Zmieniamy wzorce dokładnie tak samo jak z 2003 na 2008 R2: zmieniamy schemat domeny. Warto nie zapomnieć o tym, by przy każdej operacji wskazać ten nowy serwer. Taką operację możemy zrobić na dobrą sprawę z dowolnego kontrolera domeny. W moim przypadku zrzuty są z hosta ad-2019
.
I teraz najlepsze – ten cały proces zmiany wzorców możemy zrobić one-linerem z poziomu konsoli Windows PowerShell:
Move-ADDirectoryServerOperationMasterRole -Identity ad-2019 -OperationMasterRole SchemaMaster, DomainNamingMaster, PDCEmulator, RIDMaster, InfrastructureMaster
Move Operation Master Role
Do you want to move role 'SchemaMaster' to server 'ad-2019.supra.local' ?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): y
Move Operation Master Role
Do you want to move role 'DomainNamingMaster' to server 'ad-2019.supra.local' ?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): y
Move Operation Master Role
Do you want to move role 'PDCEmulator' to server 'ad-2019.supra.local' ?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): y
Move Operation Master Role
Do you want to move role 'RIDMaster' to server 'ad-2019.supra.local ?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): y
Move Operation Master Role
Do you want to move role 'InfrastructureMaster' to server 'ad-2019.supra.local' ?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): y
Warto sobie sprawdzić na sam koniec, czy wszystkie role się przeniosły. Robimy to poleceniem netdom query fsmo
:
PS C:\Users\Administrator> netdom query fsmo
Schema master ad-2019.supra.local
Domain naming master ad-2019.supra.local
PDC ad-2019.supra.local
RID pool manager ad-2019.supra.local
Infrastructure master ad-2019.supra.local
The command completed successfully.
I to tyle. W ten sposób możemy pozbyć się kontrolera domeny na Windowsie Server 2008 R2 za pomocą kreatora uruchamianego poleceniem dcpromo.exe
, usunąć serwer z domeny i możemy zapomnieć o problemie.