Jak odzyskać utracone obiekty AD – cz.1 backup

O backupowaniu kiedyś już troszeczkę pisałem, ale to było bardziej o problemie jaki napotkałem na swojej stacji roboczej. Dziś chciałbym rozpocząć krótki cykl jak sobie poradzić z problemem gdy w naszym Active Directory „znikną” jakieś obiekty – czy to poprzez przypadkowe usunięcie czy to z innych powodów.

Do celów prezentacji posłużę się kontrolerem domeny z systemem Windows Server 2008R2. Niemniej jednak pierwsze dwie metody mogą być wykonane zarówno na wersjach od 2003 SP1 wzwyż.

Pierwsza metoda to po prostu klasyczne odtwarzanie z backupu. Do testów tworzymy nowego użytkownika i dodajemy go do jakiejś przykładowej grupy. Osobiście lubię PoweShella, lecz niestety polecenie Net User jest o wiele szybsze od PowerShelowego New-ADUser, gdyż nie wymaga od nas podawania setki dodatkowych parametrów.

NET USER mgajda P@ssw0rd /ADD /DOMAIN /COMMENT:"Uzytkownik" /FULLNAME:"Michal Gajda"
NET GROUP "Domain Admins" mgajda /ADD /DOMAIN

Następnie próbujemy utworzyć backup stanu systemu:

wbadmin start systemstatebackup -backupTarget:d:

Backup nie powiódł się z powodu, iż moje środowisko testowe oparte jest o technologię Sun VirtualBox, które zawiera drobny błąd. Można go naprawić poprzez modyfikację parametru rejestru imagepath w kluczu HKLM\System\CurrentControlSet\Services\VboxServic. Bazowo posiada on wartość „system32\vboxservice.exe” i należy ją zmienić na „c:\windows\system32\vboxservice.exe”.

Próbujemy ponownie wykonać backup – tym razem z powodzeniem.

Gdy mamy wykonany poprawnie backup możemy przejść do zasymulowania przypadkowego usunięcia użytkownika 🙂

NET USER mgajda /DELETE

Tak naprawdę konto nie jest usuwane tylko przenoszone z drobnymi modyfikacjami do kontenera Deleted Objects. Możemy to sprawdzić po załadowaniu do PowerShella modułu ActiveDirectory:

Import-Module ActiveDirectory

I następnie wyszukując elementy posiadające atrybut isDeleted = True. Tutaj uwaga konieczne jest dodanie parametru przeszukiwanie również w kontenerze Deleted Objects, czyli –includeDeletedObjects.

Get-ADObject -Filter {isDeleted -eq "TRUE"} -IncludeDeletedObjects

Przejdźmy teraz do próby odzyskania naszego utraconego obiektu. Uruchamiamy ponownie maszynę (F8) i wybieramy tryb odzyskiwania usługi katalogowej.

Logujemy się na lokalne konto administratora w celu rozpoczęcia operacji przywrócenia stanu systemu i sprawdzamy ostatnio dostępną wersję kopii zapasowej:

wbadmin get versions

Gdy znamy już wersje aktualnego backupu możemy przystąpić do procedury odtwarzania:

Wbadmin start systemstaterecovery –version:<wersja dostępnego backupu>

W przypadku korzystania z system Windows 2003 Server całość wygląda analogicznie tylko przy wykorzystaniu narzędzia NTBackup.

W przypadku gdy posiadamy tylko jeden kontroler domeny, proces odzyskiwania utraconego obiektu możemy na tym etapie zakończyć. Niemniej jednak zostaną utracone wszelkie zmiany obiektów dokonane po wykonaniu backupu. Dlatego najlepszym rozwiązaniem jest stosowanie minimum dwóch kontrolerów domeny, tak aby móc dokonać replikacji pozostałych obiektów.

W takim przypadku restartujemy maszynę, lecz jeszcze raz wchodzimy do trybu odzyskiwania. Przechodzimy do narzędzia ntdsutil – z tego powodu, iż podczas replikacji z innych kontrolerów domeny obiekty aktualizowane są do najnowszej wersji. Każda operacja na obiekcie – w tym nawet usunięcie, wiąże się z podniesieniem znacznika wersji obiektu. Dlatego podczas replikacji nasz odtworzony obiekt zostanie ponownie usunięty. Aby tego uniknąć musimy ręcznie wymusić podniesienie wersji obiektu:

Ntdsutil “Activate Instance ntds” “Authoritative Restore” “Restore Object \”CN=mgajda,CN=Users,DC=cds,DC=pol\”” quit quit

Lub ręcznie (w razie konieczności w poszczególnych gałęziach zawsze działa polecenie Help):

Ntdsutil [Enter]
Activate Instance NTDS [Enter]
Authoritative Restore[Enter]
Restore Object ”CN=mgajda,CN=Users,DC=cds,DC=pol” [Enter]
Quit [Enter]
Quit [Enter]

Po pomyślnym wykonaniu operacji zostaną utworzone dwa pliki. Jeden zawierający listę obiektów jakie zostały zmodyfikowane oraz listę linków do obiektów z jakimi dany obiekt był powiązany – w naszym przypadku to listę grup do jakich należał dany użytkownik.

W przypadku usunięcia całych OU, ważne jest aby odzyskiwać obiekty po kolei wraz z całą strukturą OU. W przeciwnym wypadku obiekt tak jakby nie będzie posiadał rodzica i zostanie przeniesiony do kontenera LostAndFound.

Proces ten jest dość czasochłonny i niestety wymaga od nas wyłączenia na ten czas usługi katalogowej. Niemniej jednak w przypadku gdy posiadamy Active Directory pracujące w trybie domeny oraz lasu niższym niż Windows2008R2 to jedyna możliwość odzyskania pełnych danych wraz ze wszystkimi atrybutami obiektu.

Źródła:
http://technet.microsoft.com/en-us/library/cc771865(WS.10).aspx
http://technet.microsoft.com/en-us/library/cc754051(WS.10).aspx
http://forums.virtualbox.org/viewtopic.php?f=7&t=23151
http://technet.microsoft.com/en-us/library/cc754015(WS.10).aspx
http://technet.microsoft.com/en-us/library/cc753343(WS.10).aspx

Advertisements

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s