Vladimir EreminDieser Gastbeitrag wurde von Vladimir Eremin, Produktmanager bei Veeam, verfasst. Vladimir ist in den Veeam-Foren sowie auf Twitter und Spiceworks sehr aktiv. Er ist in Sachen PowerShell bestens bewandert und wird in diesem Gastbeitrag zeigen, wie Sie mit PowerShell die Durchführung regelmäßiger Backups planen können. Für konkrete Fragen zu PowerShell nutzen Sie bitte die entsprechenden Veeam-Foren. Weiterhin können Sie sich das Beispielskript für VMware vSphere und Microsoft Hyper-V herunterladen und sich in den Veeam-Foren über dieses Thema austauschen.

Veeam Backup Free Edition ist das meistgenutzte kostenlose Tool von Veeam. Vor allem das Feature VeeamZIP schätzen viele, weil sie damit interaktiv vollständige Backups für beliebig viele VMs erstellen können. Allerdings war VeeamZIP schon immer mit einer kleinen Einschränkung verbunden: es konnten keine regelmäßigen Backups geplant werden. Dies liegt daran, dass VeeamZIP vom Anwender explizit gestartet werden muss, sodass es in der Oberfläche auch keine Möglichkeit gibt, einen Zeitplan für regelmäßige Backup-Jobs zu erstellen. Wenn Ihnen dieses Problem bekannt vorkommt, haben wir gute Nachrichten für Sie: Mit Update 2 können Sie nun endlich Backups planen! In den Veeam-Foren, auf Twitter und über andere Kanäle haben die Nutzer immer wieder den Wunsch nach einem solchen Feature geäußert, weshalb wir nun in Veeam Backup Free Edition das PowerShell-Cmdlet Start-VBRZip zur Verfügung stellen.

So funktioniert's

Wie bereits eingangs erwähnt, dient Veeam Backup Free Edition vor allem der Sicherung Ihrer VMs mit VeeamZIP (und natürlich auch der Wiederherstellung von VMs, Gastdateien und Anwendungsobjekten aus diesen Backups). Mit VeeamZIP wird immer ein vollständiges Backup (eine vbk-Datei) erstellt, das als unabhängiger Wiederherstellungspunkt verwendet werden kann. Mit Veeam Backup Free Edition können Sie die Backup-Datei in einem Backup-Repository, einem lokalen Ordner oder auf einer Netzwerkfreigabe speichern.

VeeamZIP ermöglicht es, den Backup-Prozess für die ausgewählte VM sofort zu starten. Sie müssen nur wenige Einstellungen vornehmen, weshalb sich VeeamZIP sehr einfach manuell starten lässt.

image

Mit Update 2 können Sie nun, ein einfaches PowerShell-Skript erstellen (hier die Beispielskripte für VMware vSphere und Microsoft Hyper-V), mit dem VeeamZIP für eine ausgewählte VM automatisch gestartet wird. Dabei können Sie über den Taskplaner von Windows einen Zeitplan definieren. Wir haben sogar ein Beispielskript (siehe unten) für Sie, mit dem nicht nur VeeamZIP für die Erstellung von Backups der gewählten VMs gestartet wird, sondern das Ihnen außerdem per E-Mail einen übersichtlichen Report mit den Backup-Ergebnissen liefert!

Skriptparameter

Mit dem Skript können Sie Ad-hoc-Backups der ausgewählten VMs erstellen, die auf einem eigenständigen Host oder Cluster oder einem VMware vCenter-Server ausgeführt werden. Vor der Ausführung des Skripts müssen Sie drei Parameter festlegen: die Namen der zu sichernden VMs, den Namen des Hosts und das Verzeichnis, in dem die Backup-Dateien gespeichert werden sollen. Hinweis: Dieses Skript wurde aufgrund Ihres Feedbacks am 18.05.2015 aktualisiert.

 

##################################################################

# Benutzerdefinierte Variablen

##################################################################

# Namen der zu sichernden VMs durch Komma getrennt (verbindliche Variable). Beispiel: $VMNames = “VM1”,”VM2”

$VMNames = ""

# Name des vCenter-Servers oder eigenständigen Hosts, auf dem die zu sichernden VMs ausgeführt werden (verbindliche Variable)

$HostName = ""

# Verzeichnis, in dem VM-Backups gespeichert werden sollen (verbindliche Variable; Beispiel: C:\Backup)

$Directory = ""

 

Optional können Sie auch die Komprimierungsstufe und die Aufbewahrungseinstellungen ändern, das Einfrieren der VMware-Tools deaktivieren sowie die Verschlüsselung oder auch Benachrichtigungseinstellungen aktivieren:
# Gewünschte Komprimierungsstufe (optional; mögliche Werte: 0 – keine, 4 – deduplizierungsfreundlich, 5 – optimal, 6 – hoch, 9 – extrem)

$CompressionLevel = "5"

# Einfrieren von VMs beim Erstellen von Snapshots (optional; hierfür sind VMware-Tools oder Hyper-V-Integrationskomponenten im Gastbetriebssystem erforderlich. Mögliche Werte: $True/$False)

$EnableQuiescence = $True

# Schutz des Backups durch einen Verschlüsselungs-Key (optional; $True/$False)

$EnableEncryption = $False

# Verschlüsselungs-Key (optional; Pfad zu einer sicheren Zeichenfolge)

$EncryptionKey = ""

# Aufbewahrungseinstellungen (optional; standardmäßig werden VeeamZIP-Dateien nicht gelöscht und für einen unbegrenzten Zeitraum am gewählten Speicherort aufbewahrt.

# Mögliche Werte: Never, Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month)

$Retention = "Never"

 

Wenn Sie nach Abschluss des Backups per E-Mail einen Report erhalten möchten, sollten Sie die folgenden Benachrichtigungseinstellungen festlegen.

##################################################################

# Benachrichtigungseinstellungen

##################################################################

# Benachrichtigung aktivieren (optional)

$EnableNotification = $True

# Postausgangsserver (SMTP)

$SMTPServer = ""

# Absender der E-Mail

$EmailFrom = ""

# Empfänger der E-Mail

$EmailTo = ""

# Betreff der E-Mail

$EmailSubject = ""
Der E-Mail-Report enthält folgende Informationen:

Name Start Time End Time Result Details
CentOS-tiny_2015-03-26T180459 3/26/2015 6:04:59 PM 3/26/2015 6:07:17 PM Warning Processing finished with warnings at 3/26/2015 6:07:13 PM Cannot use VMware Tools quiescence because VMware Tools are not found.
CentOS-tiny_replica_2015-03-26T180720 3/26/2015 6:07:20 PM 3/26/2015 6:11:20 PM Success Processing finished at 3/26/2015 6:11:18 PM

Die oben aufgeführten Einstellungen können konfiguriert werden, indem Sie für die einzelnen Variablen die entsprechenden Werte festlegen. Wenn Sie beispielsweise die Verschlüsselung aktivieren möchten, sollten Sie die Variable „$EnableEncryption“ auf den (Booleschen) Wert „$True“ setzen und den Verschlüsselungs-Key festlegen (siehe unten). Wenn Sie festlegen möchten, dass die Backup-Dateien nach zwei Wochen wieder gelöscht werden, sollten Sie für die Variable „$Retention“ den Wert (die Zeichenfolge) „In2Weeks“ wählen usw. Sie müssen sich an dieser Stelle nicht merken, wozu die einzelnen Variablen dienen und welche Werte zulässig sind, da das Beispielskript eine kurze Beschreibung der Variablen enthält.

Verschlüsselung

Die Sicherheit der Daten ist ein wichtiger Aspekt der Backup-Strategie und kann durch Verschlüsselung gewährleistet werden. Backup-Daten müssen vor unbefugtem Zugriff geschützt werden, insbesondere wenn sensible Daten auf einer VM an einem externen Speicherort gesichert oder auf Band archiviert werden. Damit Ihre Daten sicher sind, können Sie Ihre VeeamZIP-Backups verschlüsseln. Wie bereits erwähnt, müssen Sie hierfür eine Datei auswählen, die das Verschlüsselungskennwort enthält.

Sie können das Kennwort natürlich auch als Klartextzeichenfolge im Skript angeben. Solche Zeichenfolgen sind jedoch alles andere als sicher, da sie auch als Klartext im Arbeitsspeicher hinterlegt werden. Aus diesem Grund unterstützen die meisten PowerShell-Cmdlets keine Klartextkennwörter.

Sichere Zeichenfolgen sind hier die bessere Wahl. Der Inhalt einer sicheren Zeichenfolge wird im Arbeitsspeicher verschlüsselt. Das Kennwort kann bei Bedarf entschlüsselt werden, jedoch nur durch den Administrator (bzw. denjenigen, der auch die Verschlüsselung vorgenommen hat). Eine sichere Zeichenfolge erstellen Sie, indem Sie die PowerShell-Konsole öffnen und die folgenden zwei Zeilen eingeben. Nach der Ausführung des Codes werden Sie aufgefordert, ein Kennwort einzugeben und als sichere Zeichenfolge in einer Datei zu speichern:
$SecurePassword = Read-Host -Prompt "Enter password" -AsSecureString

$SecurePassword | ConvertFrom-SecureString > > “Directory where secure string should be stored; C:\SecureString.txt, for instance”

Legen Sie anschließend den Pfad für die soeben erstellte Datei im Hauptskript fest:
# Schutz des Backups durch einen Verschlüsselungsschlüssel (optional; $True/$False)

$EnableEncryption = $True

# Verschlüsselungsschlüssel (optional; Pfad zu einer sicheren Zeichenfolge)

$EncryptionKey = "C:\SecureString.txt"

Planung der Skriptausführung

Bevor Sie die Ausführung des Skripts planen, sollten Sie zunächst versuchen, es manuell zu starten. So können Sie sich vergewissern, ob das Skript funktioniert.

Am einfachsten können Sie die Ausführung des Skripts zur automatischen Erstellung regelmäßiger Backups mit dem Windows-Taskplaner planen. Erstellen Sie hierzu im Taskplaner eine neue einfache Aufgabe:

image

Geben Sie einen Namen und eine Beschreibung ein, damit erkennbar ist, wozu die Aufgabe dient.

Im nächsten Schritt müssen Sie die Einstellungen für den Aufgabentrigger festlegen. Die Einstellungen sind selbsterklärend. Die möglichen Optionen sind relativ flexibel und reichen von mehreren Backups täglich bis hin zu einem Backup pro Monat. Wählen Sie hier die Einstellung, die Ihren RPO-Vorgaben am besten gerecht wird. Die meisten Anwender entscheiden sich für tägliche Backups:

image

Legen Sie die Startzeit für die Aufgabe außerhalb der Geschäftszeiten Ihres Unternehmens fest. In unserem Beispiel wird die Aufgabe ab 22. April 2015 jeden Abend um 22:00 Uhr gestartet.

image

Auf der nächsten Seite legen Sie die Aktion fest, die mit der geplanten Aufgabe ein Programm gestartet werden soll. Klicken Sie anschließend auf „Weiter“.

clip_image002

Fügen Sie im Fenster „Programm starten“ in das Programm/Skript folgenden Befehl ein:

Powershell –file „Pfad zur Datei Veeamzip.ps1“

clip_image004

Das war's auch schon! Vielleicht möchten Sie jedoch die Aufgabe nach der Erstellung nochmals öffnen, um weitere Änderungen vorzunehmen. Wählen Sie dazu aus „Open the Properties dialog for this task when I click Finish“:

clip_image006

Da die Aufgabe auf einem Server ausgeführt werden soll, auf dem der Benutzer beim Ausführen der Aufgabe möglicherweise nicht angemeldet ist, empfiehlt es sich, das Kontrollkästchen „Unabhängig von der Benutzeranmeldung ausführen“ zu aktivieren. In diesem Fall werden die Anmeldeinformationen des Benutzers mit der Aufgabe verknüpft.

clip_image008

Wenn Sie alle Einstellungen vorgenommen haben, klicken Sie mit der rechten Maustaste auf den Job und wählen „Ausführen“, um zu prüfen, ob die Aufgabe ordnungsgemäß ausgeführt wird:

clip_image009

PowerShell bietet den Anwendern endlich die Features, die Sie sich schon immer in Veeam Backup Free Edition gewünscht haben!

Damit können wir Ihren lang gehegten Wunsch erfüllen und die Durchführung geplanter Backups mit Veeam Backup Free Edition ermöglichen. Sie profitieren von wesentlich umfassenderen Features für Backup und Wiederherstellung, als andere kostenlose Backup-Lösungen auf Skriptbasis bieten können.

GD Star Rating
loading...
Veeam Backup Free Edition: jetzt mit PowerShell!, 5.0 out of 5 based on 1 rating
  • Tobias Weber

    Im Beispielscript für Hyper-V “VeeamZIP (updated).ps1” hat sich ein Fehler eingeschlichen:
    In Zeile 76 muss “Find-VBRHvEntity” und nicht “Find-VBRViEntity” stehen.

    GD Star Rating
    loading...
  • Tom

    Hallo, vielen Dank für die Bereitstellung des Skripts.
    Wenn ich als $Directory ein SMB Ordner auf einem NAS möchte, wie gebe ich die Zugangsdaten (Credentials) ein? Kann man hier einen besonderen Befehl verwenden?

    GD Star Rating
    loading...
    • Polina Vasileva

      Hi Tom,

      Currently, there is no way to pass credentials to a given share within a script.
      In order to back up to a network share, a user has to grant read/write permissions to the Veeam service account, and do exactly the same for the necessary computer account.
      For more information please check out this thread: https://forums.veeam.com/post189229.html?hilit=share#p189229

      GD Star Rating
      loading...
  • Mathias Goldhan

    Hallo,

    kann ich auch Traffic Throttling Rules definieren und wenn ja wie, da vCenter Operations Manager bei jedem Backup eines Hosts unzählige Warnungen schickt?

    Viele Grüße

    GD Star Rating
    loading...
    • Vladimir Eremin

      Currently Network throttling rules cannot be configured via PowerShell snap-in. Thanks.

      GD Star Rating
      loading...