Daten wiederherstellen via Powershell anstelle der Konsole

Einen Restore über die GUI zu machen ist verhältnismäßig einfach. Nun sind einige von uns Admins ja eher Powershell Junkies und fragen sich sicher ob man einen Restore nicht einfach mit Powershell machen kann.

Ja kann man und heute beschreiben wir kurz wie das geht:

Das Powershell CmdLet lautet :

Recover-RecoverableItem [-RecoverableItem] <RecoverableObject[]> [-RecoveryOption] <RecoveryOptions> [-RecoveryPointLocation <RecoverySourceLocation[]>] [-JobStateChangedEventHandler <JobStateChangedEventHandler>] [-RecoveryNotification <Nullable`1>] [-Verbose] [-Debug] [-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-OutVariable <String>] [-OutBuffer <Int32>]

Schaut auf den ersten Blick komplizierter aus als es ist. Um einen Restore zu machen braucht man drei wesentliche Information:

– Was soll wiederhergestellt werden ?
– Mit welchen Optionen soll der Restore laufen ? (Überschreiben, Berechtigungen etc.)
– Welcher Recovery Point soll benutzt werden ?

1. Zunächst müssen wir festlegen aus welcher Protection Group die Datei kommt, die wir  wiederherstellen wollen.
Dazu erstellen wir eine Variable mit allen Protection Groups die unser DPM Server hält:

$pg = Get-ProtectionGroup -dpmservername Servername

Das Ergebnis ist ein Array mit allen Protection Groups. Wir suchen uns eine davon aus. Wie in einem Array üblich beginnt die Nummerierung mit 0. Nehmen wir also gleich die erste Protection Group $pg[0]. Jetzt möchten wir wissen welche Datensourcen enthalten sind:

$ds = Get-DataSource -protectiongroup $pg[0]

Jetzt wählen wir auch eine Datenquelle aus und schauen welche Recoverypoints enthalten sind:

$rp = Get-RecoveryPoint -datasource $ds[0]

Das liefert auch wieder ein Array zurück sortiert nach dem ältesten Recoverypoint und in der Sortierung Disk -> Tape. Also erst eine Liste aller Recoverypoints auf Disk beginnend mit dem ältesten und danach eine Liste aller Recoverypoints auf Tape beginnen mit dem ältesten. Nehmen wir an der aktuellste Recoverypoint auf Disk ist in der Liste auf Platz 6. Also wählen wir $rp[5] aus um daraus den Restore zu machen.

2. Jetzt benötigen wir die Optionen für die Wiederherstellung. Hier legen wir fest, wohin zurückgesichert werden soll, ob überschrieben oder eine Kopie erstellt wird, ob an eine alternative Location zurückgesichert wird etc. :

$options = New-RecoveryOption -targetserver Servername -recoverylocation copytofolder -FileSystem -alternatelocation „D:\Wiederherstellung“ -recoverytype restore -OverwriteType overwrite

3. Jetzt können wir ans Rücksichern gehen:

Recover-RecoverableItem -recoverableitem $rp[5] -recoveryoption $options

In unserem kurzen Überblick haben wir jetzt einen ganzen RecoveryPoint zurückgesichert. Will man nur eine einzelne Datei zurücksichern muss man die Suche benutzen New-SearchOption. Mit der lässt sich dann auch eine ganz bestimmte Datei zurücksichern. Wenn ihr dazu einen detaillierteren Beitrag lesen wollt, dann hinterlasst uns doch einen Kommentar oder schreibt uns über unser Formular.