Hyper-V Snapshots automatisch erstellen

Per PowerShell Skript und Windows Task können automatisiert Snapshots aller virtuellen Maschienen eines Hyper-V Servers erstellt werden.

1. Erstellen des PowerShell Skripts:

$VM_Service = get-wmiobject -namespace root\virtualization Msvm_VirtualSystemManagementService
$ListofVMs = get-wmiobject -namespace root\virtualization Msvm_ComputerSystem -filter  "ElementName <> Name "
foreach ($VM in [array] $ListOfVMs)
{
$VM_service.CreateVirtualSystemSnapShot($VM.__PATH)
}

Das Skript kann im Hyper-V Programmordner unter einem eindeutigen Namen wie Beispielsweise VMSnapshot.ps1 gespeichert und von dort gestartet werden.

2. Windows Task erstellen:

Als Aktion wird  „Programm starten“ gewählt um PowerShell auszuführen:
%SystemRoot%\system32\WindowsPowerShellv1.0\powershell.exe

Als Argument folgendes verwenden:
"& 'C:\Program Files\Hyper-V\VMSnapshot.ps1' 'core' "

Jetzt kann ein individueller Zeitplan erstellt werden, an dem die Snapshots erstellt werden.
Am besten den Task direkt testen –> Rechtsklick auf den Task –> „Jetzt ausführen“ wählen.

Per Hyper-V Manager kann der aktuelle Status überprüft werden und sichergestellt werden, ob die Snapshots nach Erstellung zur Verfügung stehen.

Eine detailierte Anleitung inklusive Screenshots steht in kürze zur Verfügung.

6 Antworten auf „Hyper-V Snapshots automatisch erstellen“

  1. Na ich weiss garnicht wo ich richtig anfangen soll wie genau ich es erstellen soll bräuchte wirklich ne step by step Anleitung!

  2. Da gibt es einen kleinen Fehler in der obigen Kurzanleitung. Ein Slash fehlt vor v1.0.
    Der Pfad muss lauten: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe

    Gruss

    Jan

  3. Noch ein Tipp.
    Eventuell startet man das Skript über die Aufgabenverwaltung und im Ereignisprotokoll sieht alles „gut“ aus. Werden dann jedoch keine Snapshots erstellt empfiehlt es sich, das VMSnapshot.ps1 einmal direkt aus der Powershell zu starten. Hier kann dann die Fehlermeldung „Die Datei „C:\programme\hyper-v\VMSnapshot.ps1″ kann nicht geladen werden, da die Ausführung von Skripts auf diesem System deaktiviert ist.“ erscheinen und erklärt, warum keine Snapshots erstellt werden.
    Im ersten Schritt zum Test eignet sich der Befehl „Set-ExecutionPolicy Unrestricted“, welcher das Ausführen aller Skripte, also auch unsignierter, zulässt.
    In einer Produktivumgebung ist dann allerdings das Einschränken auf signierte oder eigene Skripte zu empfehlen. Mehr dazu unter: http://www.msxfaq.de/code/powershell.htm

    Gruss (nochmals)
    Jan

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

 

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.