Virtuelle Server können entweder konventionell wie physikalische Server gesichert werden oder auch komplett als Image. Damit die jeweiligen Serverimages kopiert werden können, muss der Server in den Savemode gesetzt werden. Danach besteht die Möglichkeit die .vhd, .vmc, .vsv Dateien zu kopieren.
Der Unterbruch des Server ist abhängig von der Dateigrösse.

Soll dies in einem automtischen Task laufen, kann folgendes Script verwendet werden. Dieses Script führt den Server in den Savemode und kopiert die Files an den gewünschten Ort. Es müssen zwei Parameter übergeben werden.
1: virtual Servername
2: Zielverzeichnis

‘Script Start
On Error Resume Next

‘Erstellt Shell Objekt
Set objShell = CreateObject (“WScript.Shell”)

‘Verbindet mit Virtual Server
Set virtualServer = CreateObject(“VirtualServer.Application”)

‘Verbindet mit Virtual Server
set vm = virtualServer.FindVirtualMachine(WScript.Arguments(0))

‘Setzt virtueller Server in den Savemode
set saveTask = vm.Save

‘Loop um sicherzugehen, dass der Server sich im Savemode befindet
while not saveTask.isComplete
WScript.Sleep 1000
wend

‘Kopiert virtuelle Harddisk an das gewünschte Ort
for each vhd in vm.HardDiskConnections
objShell.Run “%comspec% /c copy ” & chr(34) & vhd.undoHardDisk.file & chr(34) & ” ” & chr(34) & WScript.Arguments(1) & chr(34),1 , True
objShell.Run “%comspec% /c copy ” & chr(34) & vhd.HardDisk.file & chr(34) & ” ” & chr(34) & WScript.Arguments(1) & chr(34),1 , True
next

‘Kopiert .VMC und .VSV Files
objShell.Run “%comspec% /c copy ” & chr(34) & vm.File & chr(34) & ” ” & chr(34) & WScript.Arguments(1) & chr(34),1 , True
objShell.Run “%comspec% /c copy ” & chr(34) & vm.SavedStateFilePath & chr(34) & ” ” & chr(34) & WScript.Arguments(1) & chr(34),1 , True

‘Wenn alles kopiert ist, wird der Server wieder gestartet
vm.Startup

‘Script Ende

Es ist zu beachten dass objShell.Run mit “1, True” beendet wird. So wird gewährleistet, dass das vbs Script erst nach erfolgreichem Kopieren weiter läuft.

Share