goodbytes
Goto Top

VirtualPC - Änderungen der VM per vba-Script übernehmen

Hallo,
der XP-Modus in Windows 7 nutzt ja VirtualPC als Umgebung.

Um eine Sicherungskopie zu erstellen fahre ich die VM per vbs herunter (falls sie läuft), verwerfe dann die Änderungen und kopiere alle Dateien weg:

Dim objFileSystem 
Dim objShell 
Dim strZiel 

Set objVS = CreateObject("VirtualPC.Application")  
Set objVM = objVS.FindVirtualMachine("Windows XP Mode")  

If  objVM.State = 5 then
    objVM.Turnoff()
    WScript.Sleep 10000
End If

    objVM.DiscardUndoDisks

Set objFileSystem = CreateObject("Scripting.FileSystemObject")   
Set objShell = CreateObject("Wscript.Shell")   
 
strZiel = "V:\VM - XP-Modus\Sicherungen\Kopierte Dateien\" & Right(Date,4) & "-" & Mid(Date, 4, 2) & "-" & Left(Date, 2)  
If Not (objFileSystem.FolderExists(strZiel)) Then objFileSystem.CreateFolder(strZiel) 

strQuelle = "V:\VM - XP-Modus\"  

Set objfs = CreateObject("Scripting.FileSystemObject")  

If  NOT objfs.FolderExists(strZiel) Then
    objfs.CreateFolder strZiel
End If

On Error Resume Next
objfs.CopyFile strQuelle & "*.*", strZiel  

If Err.Number > 0 Then
     MsgBox "Der Zielordner existiert bereits. Bitte erst löschen.", , "Sicherung XP-Mode Dateien ..."  

     Err.Clear
Else
     WScript.Echo "Kopiervorgang erfolgreich beendet."  
     Err.Clear
End If

On Error GoTo 0

Dies funktioniert auch prima.
Nun wollte ich auch eine Möglichkeit haben die Änderungen zu übernehmen und erst dann zu sichern:

...

Set objVS = CreateObject("VirtualServer.Application")  
Set objVM = objVS.FindVirtualMachine("Windows XP Mode")  
objVM.commitUndoDisks()

...

Aber leider funktioniert dies nicht. Wie kann ich das bewerkstelligen?

Wie könnte ich beide Varianten in ein einziges Script packen, so dass ich eine Abfrage bekomme ob ich die Änderungen übernehmen oder verwerfen möchte?

Torsten

Content-Key: 159566

Url: https://administrator.de/contentid/159566

Printed on: April 26, 2024 at 17:04 o'clock

Member: Logan000
Logan000 Jan 31, 2011 at 13:20:39 (UTC)
Goto Top
Moin Moin

...
objVM.commitUndoDisks() 
...
Eine solche Methode kennt das Objekt objVM wohl nicht.
Siehe: http://msdn.microsoft.com/en-us/library/dd796617%28v=VS.85%29.aspx

Was passiert eigentlich wenn du den Aufruf
...
objVM.DiscardUndoDisks 
...
einfach mal weg lässt?

Gruß L.
Member: goodbytes
goodbytes Feb 03, 2011 at 11:12:16 (UTC)
Goto Top
Hallo Logan000.
ich wollte schon, dass dann die Änderungen dauerhaft übernommen werden.

Vielen Dank für den Link, mit der Methode "MergeUndoDisks " sollte es dann eigentlich klappen.

Werds mal testen.

Gruß
Torsten
Member: goodbytes
goodbytes Feb 03, 2011 at 11:40:19 (UTC)
Goto Top
Also mit der Methode funktioniert es prima.

Aber wie könnte ich einen Fortschrittsbalken während des Kopiervorgangs anzeigen lassen?

Torsten