Wymuszenie replikacji pomiędzy dwoma kontrolerami domeny w Active Directory
Wyobraź sobie, że masz tylko jedne drzwi do domu. Żadnych okien, żadnego patio, tylko jedne drzwi. Co się stanie, jeśli nie będziesz mógł otworzyć tych drzwi? Dom, i wszystko w nim, jest bezużyteczne dla Ciebie.
Kontroler domeny jest jak drzwi, w pewnym sensie. Jeden z bramkarzem przy nim. To brama, która pozwala dostać się do środka, do rzeczy, które chcesz. Active Directory (AD) jest bramkarzem przy drzwiach. Sprawdza Twoje dane uwierzytelniające, określa, czy możesz przejść przez drzwi i do jakich zasobów masz dostęp, gdy już tam wejdziesz.
Jeśli prowadzisz sieć dowolnego rodzaju i masz tylko jeden kontroler domeny, mieszkasz w domu z jednymi drzwiami. Jeśli coś się stanie z tym kontrolerem domeny, cały Twój system serwerów się rozpadnie. Zawsze należy mieć więcej niż jeden kontroler domeny (DC).
Ale jak się upewnić, że oba kontrolery domeny mają te same informacje? Załóżmy, że dokonałeś zmiany związanej z bezpieczeństwem na jednym z DC. Chcesz mieć pewność, że ta zmiana zostanie natychmiast zreplikowana na innych DC. Po co czekać 15 minut lub więcej, aż stanie się to zgodnie z harmonogramem? Musisz wymusić replikację kontrolerów domeny w Active Directory.
Można to zrobić na 3 sposoby: poprzez graficzny interfejs użytkownika (GUI), poprzez interfejs wiersza poleceń (CLI) lub poprzez PowerShell.
Wymuszenie replikacji kontrolera domeny poprzez GUI
Serwery Windows często korzystają z GUI, co jest dobre dla początkujących administratorów systemów. Jest to łatwiejsze do nauczenia i czasami pomaga w wizualizacji tego, co naprawdę się dzieje.
- Zaloguj się do jednego z DC i otwórz Active Directory Sites and Services.
- Przejść do witryny, dla której chcemy zreplikować kontrolery domeny. Rozwiń ją, klikając strzałkę obok nazwy witryny. Rozwiń Serwery. Rozwiń DC, który chcesz replikować. Kliknij na NTDS Settings.
- W prawym panelu kliknij prawym przyciskiem myszy na serwer i wybierz Replicate Now.
- W zależności od liczby DC, może to potrwać od mniej niż sekundy do kilku minut. Po zakończeniu zostanie wyświetlone powiadomienie „Active Directory Domain Services has replicated the connections.”. Kliknij OK, aby zakończyć.
Wymuszenie replikacji kontrolerów domeny za pomocą polecenia CLI
Jeśli znasz stare dobre Windows CMD, to polecenie repadmin jest dla ciebie. Jest to najszybszy jednorazowy sposób na wymuszenie duplikacji DC. Jeśli nie jesteś zaznajomiony to jest to dobry moment na poznanie Windows CMD.
- Zaloguj się do jednego ze swoich DC i otwórz Wiersz poleceń.
- Wprowadź następujące polecenie, a następnie naciśnij klawisz Enter.
repadmin /syncall /AdeP
- Litania informacji przewinie się na ekranie. Jeśli w ostatnim wierszu widać napis „SyncAll terminated with no errors.”, a pod nim znak zachęty do wykonania polecenia, oznacza to, że replikacja DC zakończyła się powodzeniem.
Replikacja kontrolerów domeny za pomocą PowerShella
Jeśli nie używasz PowerShella w swoim codziennym życiu, to wiele tracisz. Naprawdę jesteś sobie winien naukę PowerShella. Dzięki niemu Twoje życie stanie się łatwiejsze, a jeśli jesteś młodszym administratorem systemów, pomoże Ci to przenieść Twoją karierę na wyższy poziom.
Te kroki można wykonać w zwykłym PowerShell CLI, ale my zrobiliśmy to w PowerShell ISE, aby lepiej pokazać polecenia i ich rezultaty. Zbudujemy skrypt, który można zapisać lub nawet przekształcić w cmdlet, który można wywołać z linii poleceń PowerShell.
- Zaloguj się do jednego z DC i otwórz PowerShell lub PowerShell ISE.
- Zanim napiszesz jakikolwiek skrypt, zapisz go z opisową nazwą, taką jak force-DCReplication.ps1, abyś mógł go łatwiej użyć ponownie. Wpisz poniższy kod i uruchom go, aby zobaczyć, jak uzyska nazwy wszystkich DC.
(Get-ADDomainController -Filter *).Name
Widzisz, jak zwraca nazwy DC? Teraz możesz przekazać ten wynik do następnego polecenia cmdlet. Piper to znak pionowej linii ( | ), który zazwyczaj znajduje się na klawiaturze tuż nad klawiszem Enter.
- Na końcu poprzedniego polecenia wpisz następujący kod:
| Foreach-Object { repadmin /syncall $_ (Get-ADDomain).DistinguishedName /AdeP }
Komenda powinna wyglądać tak, jak na poniższym obrazku. Uruchom je. Powinno ono zwrócić komunikat taki sam jak ten w sekcji Force Domain Controller Replication Through GUI powyżej. Jeśli kończy się on na „SyncAll terminated with no errors.” to znaczy, że się udało.
Czy zauważyłeś, że używa to również polecenia repadmin?
- Dodajmy jeszcze jedną linię, aby upewnić się, że replikacja naprawdę się zakończyła. Poniższy kod zwróci datę i czas ostatniej replikacji każdego z DC. To polecenie może być użyte samodzielnie w innym czasie, jeśli jesteś po prostu ciekawy, kiedy twoje DC były ostatnio replikowane. Wpisz kod i uruchom go.
Get-ADReplicationPartnerMetadata -Target "$env:userdnsdomain" -Scope Domain | Select-Object Server, LastReplicationSuccess
Wynik powinien przypominać poniższy obrazek. Na dole zobaczysz dokładną datę i godzinę ostatniej replikacji.
- Aby dopracować ten skrypt, uczyńmy jego dane wyjściowe nieco mniej dosłownymi. Na końcu pierwszej linii wpisz | Out-Null pomiędzy /AdeP a nawiasem końcowym. Dzięki temu skrypt nie będzie wysyłał wyników działania tego cmdletu. Wynik końcowy będzie wyglądał jak na poniższym obrazku.
Keep’em Replicated
Teraz znasz 3 sposoby na wymuszenie replikacji kontrolerów domeny w AD. Stworzyłeś również skrypt PowerShell wielokrotnego użytku, który możesz wywołać z linii poleceń PowerShell kiedy tylko chcesz. Nie ma już wymówki, aby ostatnie zmiany w DC siedziały i czekały na następną zaplanowaną replikację, kiedykolwiek to nastąpi.