Ako jeden z mechanizmov zálohovania Active Directory sa mi osvedčili každodenné snapshoty databázy. Nedajú sa síce použiť priamo k obnoveniu DC, ale v kombinácii s nástrojom dsamain umožňujú veľmi rýchlo nahliadnuť do historického stavu domény.

Snapshot Active Directory databázy

Štandardný postup získania snapshotu pomocou nástroja ntdsutil je nasledovný:

  1. Pripojiť sa k AD (príkaz activate instance ntds)
  2. Vytvoriť snapshot (príkaz create)
  3. Zobraziť zoznam snapshotov a poznačiť si číslo toho najnovšieho (príkaz list all)
  4. Pripojiť vytvorený snapshot ako podadresár C:\ (príkaz mount)
  5. Vykopírovať zo snapshotu súbor ntds.dit pomocou prieskumníka
  6. Odmountovať snapshot (príkaz unmount)
  7. Zmazať snapshot (príkaz delete)

Celý postup je vidno na nasledovnom screenshote:

Active Directory Snapshot

IFM záloha

Predošlý postup je trochu ťažkopádny, hlavne ak ho chceme zautomatizovať. Preto radšej využívam Install From Media (IFM) zálohy, ktoré na jeden príkaz urobia kroky 2-7 z predošlého postupu:

Install From Media Backup

Navyše prebehne aj defragmentácia databázy a odzálohovanie registrov. Výsledkom je táto adresárová štruktúra:

  • Adresár Active Directory
    • Súbor ntds.dit – Defragmentovaná databáza
  • Adresár Registry
    • Súbor SECURITY – Registry hive obsahujúci vetvu HKLM\Security
    • Súbor SYSTEM – Registry hive obsahujúci vetvu HKLM\System.

Registre sú súčasťou IFM zálohy preto, lebo hashe používateľských hesiel sú v databáze zasifrované pomocou tzv. SYSKEY/BOOTKEY, ktorý sa nachádza práve v registroch.

Použitie IFM zálohy

Primárnym účelom tejto zálohy je jej použitie pri inštalácii nového doménového kontroléru na pobočke s pomalou konektivitou. Nikto nám však nebráni si ntds.dit súbor z IFM zálohy primountovať pomocou nástroja dsamain, rovnako ako bežný snapshot. Nasledovná sekvencia príkazov sprístupní odzálohovanú databázu databázu cez protokol LDAP na porte 10389 a nasmeruje na ňu konzolu Active Directory Users and Computers:

dsamain

Automatizácia

Ostáva nám ešte zautomatizovať tvorbu IFM záloh. Môžeme k tomu použiť nasledujúci PowerShell skript, ktorý každú zálohu uloží do samostatného adresára, ktorý vo svojom názve obsahuje aktuálny čas a dátum:

$date = Get-Date -Format 'yyyy-MM-dd HH-mm'
$folder = Join-Path 'C:\IFM' $date
ntdsutil 'activate instance ntds' ifm "create sysvol full `"$folder`"" quit quit

Tento skript potom stačí pravidelne spúšťať v rámci periodickej plánovanej úlohy. Nesmieme samozrejme zabudnúť na premazávanie starých záloh, aby nám nezaplnili disk.

Záver

IFM zálohy nám v žiadnom prípade nenahradia System State zálohy, vytvárané pomocou Windows Server Backup alebo nástrojov tretích strán. Môžu ale poslúžiť ako ich doplnok, pretože k dátam v nich obsiahnutých sa typicky vieme dostať oveľa rýchlejšie, než k System State zálohám.