Hvordan benytte snapshots av Active Directory i Windows Server 2008

Hvordan benytte snapshots av Active Directory i Windows Server 2008

I Windows Server 2008 er det en ny funksjon i Active Directory Domain Services som heter snapshots. Dette gjør det mulig å ta snapshots som senere kan sammenlignes mot den aktive AD-databasen, og deretter legge tilbake slettede objekter.

Den nye snapshot-funksjonen i Windows Server 2008 er noe alle som jobber med Active Directory bør være klar over, siden man kjapt og enkelt kan restore objekter i AD fra et snapshot istedetfor å begynne med restore fra backup.

For å kunne benytte dette må minst èn domenekontroller i domenet være Windows Server 2008.
Ntdsutil er et verktøy som de fleste som administrerer et AD-domener kjenner til. Med dette verktøyet kan man jobbe direkte mot Active Diretory-databasen (filen ntds.dit), og utføre oppgaver som defragmentering, metadata cleanup (opprydding etter feilede domenekontrollere) og restore databasen for å nevne noe. Se denne Technet-artikkelen for nærmere info.

Det er i ntdsutil den nye snapshot-funksjonaliteten er tilgjengelig.

  • Man starter først et cmd-vindu på den aktuelle domenekontrolleren og skriver ”ntdsutil” for å starte verkøyet.
  • Deretter må man aktivere instansen man skal jobbe mot ved å skrive ”activate instance ntds”.
  • For å sette konteksten mot snapshot-funksjonaliten skriver man så enkelt og greit ”snapshot”.
  • Gyldige parametre står i denne Technet-artikkelen.
  • For å lage et snapshot skriver man ”create”, og man skal da få meldigen ”Snapshot set {GUID} generated successfully”.

Når dette er gjort er snapshoten laget og man kan gå ut av ntdsutil ved å skrive ”quit” 2 ganger. Et tips er å sette opp automatisk snapshot som en planlagt oppgave. Dette gjøres ved å lagre følgende i en cmd-fil:

ntdsutil snapshot “activate instance ntds” create quit quit
exit

cmd-fila settes så opp som en planlagt oppgave (Scheduled task) på serveren, og settes til å kjøre f.eks. èn gang pr dag.

Men når du sitter der med snapshots i massevis, hvordan kan disse benyttes videre i praksis?
La oss ta et eksempel med at en brukerkonto er slettet, og du vil restore den fra et snapshot.Først starter vi som over med å starte ntdsutil, aktivere instansen vi skal jobbe mot og deretter gå i konteksten snapshot. Skriv så ”list all” for å se alle snapshot som er laget. Basert på datoen du vet eller tror den slettede brukerkontoen eksisterte, kopier GUID-nummeret for den aktuelle datoen. En GUID er en unik ID for hver snapshot.

Skriv så ”mount {GUID-nummer}”. Det skal da komme følgende melding ”Snapshot {GUID-nummer} mounted as {filsystem-sti til snapshot}”.
Skriv så ”quit” 2 ganger for å gå ut av ntdsutil.

Nå er snapshot-bildet mountet i filsystemet, men for å jobbe videre mot det vil vi ha det tilgjengelig som en LDAP-tjeneste slik at det kan aksessere via f.eks. ldp.exe som er et verktøy for å aksessere LDAP-servere.

For å få til dette finnes det et innebygd verktøy i Windows Server 2008 som heter ”dsamain”. Dette er laget nettopp for å eksponere et snapshot eller en backup som en LDAP-server.
Parametre for bruk står i denne Technet-artikkelen. De 2 parametre vi skal bruke i dette eksempelet er –dbpath som er stien til ntds.dit-fila i snapshot`et som er mountet i ntdsutil, og –ldapport som er en ledig port som kan benyttes som en midlertidig ldapport.

Dette skjermbildet viser det vi har gjort hittil:

I dette eksempelet er 3333 benyttet som ldapport. Så lenge markøren som står nederst vises står ldap-serveren og kjører, og den vil kjøre inntil den stoppes ved å trykke Ctrl + C.

Dette er en bruker som eksisterte på det tidspunktet snapshot`et ble tatt:

Vi sletter så denne brukeren:

Vi skal nå benytte et verktøy som heter Directory Service Comparison Tool som kan koble seg til en aktiv AD-database og en snapshot-database og vise endringer og om ønskelig restore objekter. Dette verktøyet er skrevet av Fredrik Lindström og kan lastes ned herfra.

Dette er et mmc-basert verktøy som vi dermed åpner via mmc.exe.
Når dette er gjort høyreklikker vi på ”Directory Service Comparison Tool” og velger ”Datasource Settings”:

Vi angir så navnet på en aktiv domenekontroller i host-feltet under ”Directory Service” og navnet på domenekontrolleren hvor LDAP-serveren med snapshot`et kjører, etterfulgt av et kolon og portnummeret vi valgte:

Når man trykker OK vil man så få opp informasjon om objekter som er endret, lagt til og slettet.
Vi trykker på fanen ”Deleted” for å finne igjen test-brukeren som er slettet:

Vi merker den aktuelle brukeren og trykker så på ”Reanimate” for å restore den tilbake i den aktive AD-databasen:

Når vi så går tilbake til ”Active Directory Users and Computers” og trykker F5 for ”Refresh” ser vi at brukeren er tilbake:

For å oppsummere kan altså den nye snapshot-funksjonen i Windows Server 2008 Active Directory Domain Services brukes både for å se endringer og legge tilbake objekter som er slettet.

Jeg vil til slutt anbefale alle som vurderer å benytte seg av denne funksjonen prøve den ut i et lab-miljø før det benyttes i et produksjons-miljø.