Im Artikel Verwaltung einer Hyper-V Testumgebung via PowerShell - Teil 1 Reset [1] habe ich erklärt, wie man einen Snapshot für alle VMs wiederherstellt. Wie man auch das Erzeugen der Snapshots per Powershell-Skript vereinfacht, zeige ich im folgenden. Auch hier werden wir uns wieder das PowerShell-Projekt von Codeplex[2] zu nutze machen

Snapshot der Umgebung

Wie beim Reset brauchen wir auch für den Snapshot erst einmal ein paar zusätzliche Infos:

Name des Hyper-V-Hosts:

TEST

Name des neuen Snapshots:

SNAPSHOT-NEW

Namen aller virtuellen Maschinen:

WIN7TEST01 TMGTEST01 DCTEST01 MAILTEST01

Stopreihenfolge:

  1. WIN7TEST01
  2. MAILTRI01
  3. TMGTRI01
  4. DCTEST01

Startreihenfolge:

  1. DCTEST01
  2. TMGTEST01
  3. MAILTEST01
  4. WIN7TEST01

Zu aller erst müssen wir auch hier die Module von codeplex importieren:

Import-Module 'C:Hyper-V-PS-ModuleHyperV.ps1'

Fahren wir nun alle Maschinen in der korrekten Reihenfolge herunter um einen gut funktionierenden Snapshot erzeugen zu können:

Get-VM WIN7TEST01 -Server TEST | Shutdown-VM -wait
Get-VM MAILTEST01 -Server TEST | Shutdown-VM -wait
Get-VM TMGTEST01 -Server TEST | Shutdown-VM -wait
Get-VM DCTEST01-Server TEST | Shutdown-VM -wait

Nun erzeugen wir den Snapshot:

Get-VM -Server TEST | New-VMSnapshot -force -wait

Da per Default die Namen der Snapshots generiert werden, ändern wir diesen nun in den gewünschten Namen:

Get-VMSnapshot -Server TEST -newest | Rename-VMSnapshot -NewName SNAPSHOT-NEW -force

Zum Schluss starten wir, wie in Teil 1 wieder alle VMs:

Get-VM DCTEST01 -Server TEST | Start-VM -wait
Get-VM TMGTEST01 -Server TEST | Start-VM -wait
Get-VM MAILTEST01 -Server TEST | Start-VM -wait
Get-VM WIN7TEST01 -Server TEST | Start-VM -wait

[1] http://www.escde.net/2012/10/01/verwaltung-einer-hyper-v-testumgebung-via-powershell-teil-1-reset/ [2] http://pshyperv.codeplex.com/