rsync02 10 Geschrieben 12. Februar 2007 Melden Teilen Geschrieben 12. Februar 2007 Hallo, ich versuche, meine VM, die unter Virtual Server 2005 R2 läuft, per Script zu sichern. Ich habe dazu dieses Script Back Up Microsoft Virtual Server Images benutzt. On Error Resume Next Set objShell = CreateObject ("WScript.Shell") set objFSO=CreateObject("Scripting.FileSystemObject") Set virtualServer = CreateObject("VirtualServer.Application") DestBackupDir = "D:\VM-Backups\" sExCmd = "CreateVSS.cmd" Set oFileSys = CreateObject("Scripting.FileSystemObject") if oFileSys.FileExists(sExCmd) then oFileSys.DeleteFile(sExCmd) set oExCmd = oFileSys.CreateTextFile(sExCmd, CopyOverwrite) For each objVM in virtualServer.VirtualMachines 'See if vm machine is running. If so then do backup If objVM.State = 5 then 'Save state the virtual machine set saveTask = objVM.Save 'Loop waiting for task completion - and display status while not saveTask.isComplete WScript.Sleep 1000 wend 'Copy .VMC and .VSV files MyArray = Split(objVM.File,"\") Filename = MyArray(Ubound(MyArray)) objFSO.CopyFile objVM.File,DestBackupDir & Filename MyArray = Split(objVM.SavedStateFilePath,"\") Filename = MyArray(Ubound(MyArray)) objFSO.CopyFile objVM.SavedStateFilePath,DestBackupDir & Filename End If Next Set objVM = Nothing ' Create Shadow copy of VM drive oExCmd.WriteLine "vshadow.exe -script=setvar1.cmd -p d:" oExCmd.WriteLine "call setvar1.cmd" oExCmd.WriteLine "vshadow.exe -el=%SHADOW_ID_1%,x:" oExCmd.Close Result = objShell.run(sExCmd,vbMinimized, TRUE) ' Start VM machine up from saved state For each objVM in virtualServer.VirtualMachines 'See if vm machine is Saved. If so then resume If objVM.State = 2 then 'Start virtual machine objVM.Startup End If Next Set objVM = Nothing WScript.Sleep 10000 If Result = 0 then 'Loop through all vm machines For each objVM in virtualServer.VirtualMachines 'See if vm machine is running. If so copy shadow backup of vm disk drives If objVM.State = 5 then 'Copy virtual hard disks and undo disks For each vhd in objVM.HardDiskConnections MyArray = Split(vhd.undoHardDisk.file,"\") Filename = MyArray(Ubound(MyArray)) SourceName = "x" & Right(vhd.undoHardDisk.file,Len(vhd.undoHardDisk.file)-1) wscript.echo vhd.undoHardDisk.file wscript.echo SourceName objFSO.CopyFile SourceName,DestBackupDir & Filename MyArray = Split(vhd.HardDisk.file,"\") Filename = MyArray(Ubound(MyArray)) SourceName = "x" & Right(vhd.HardDisk.file,Len(vhd.HardDisk.file)-1) objFSO.CopyFile SourceName,DestBackupDir & Filename Next End If Next End If ' Shutdown all shadow copy instances if oFileSys.FileExists(sExCmd) then oFileSys.DeleteFile(sExCmd) set oExCmd = oFileSys.CreateTextFile(sExCmd, CopyOverwrite) oExCmd.WriteLine "Echo y | vshadow.exe -da" oExCmd.Close Result = objShell.run(sExCmd,vbMinimized, TRUE) 'Script ends wscript.echo "done" Ich habe lediglich den Backuppfad angepasst. Nun habe ich das Problem, das zwar meine .vsv und .vmc Datein unter C:\Dokumente und Einstellungen\All Users\Dokumente\Shared Virtual Machines\..liegen und auch vom Script gesichert werden, aber meine .vhd Datei, die auf einer seperaten Festplatte mit einem ganz anderen Pfad liegt, leider nicht mitkopiert wird. "E:\VM-Drives\sbs200.vhd" Leider kann ich kein VBS (zum Anpasssen des Backuppfads hats gerade noch gereicht). Kann mir vielleicht jemand noch einen Tip geben, wie ich diesen Pfad in dieses Script integrieren kann. Zitieren Link zu diesem Kommentar
me1stertobiasm8 10 Geschrieben 21. August 2007 Melden Teilen Geschrieben 21. August 2007 Such die folgende Zeile im Script und änder das "d" entsprechen in dein Laufwerksbuchstaben um wo die vhd Dateien liegen ! oExCmd.WriteLine "vshadow.exe -script=setvar1.cmd -p d:" Teil mir wenns läuft mal deine Erfahrungen mit , weil bei mir läuft es nicht automatisch, es erscheint beim Durchlaufen immer ein Fesnter was bestätigt werden muss sonst läufts nicht weiter. Die Anzahl der Fenster die erscheinen richten sich nach der Anzahl der VMs Gruß, Tobi Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.