Hallo!
Ich möchte gerne nach dem herunterfahren einer VM (Windows 2000 Pro SP4), den Host (Windows 7 Professionel) auch herunterfahren. Das soll automatisch geschehen. Wie mache ich das am besten?
Die Foren-SW läuft ohne erkennbare Probleme. Sollte doch etwas nicht funktionieren, bitte gerne hier jederzeit melden und wir kümmern uns zeitnah darum. Danke!
host automatisch herunterfahren wenn vm beendet
- continuum
- UNSTERBLICH(R.I.P.)
- Beiträge: 14759
- Registriert: 09.08.2003, 05:41
- Wohnort: sauerland
- Kontaktdaten:
du koenntest im Gast eine batch schreiben die ein remote-shutdown des Hosts ausfuehrt.
Wenn das timeout hoch genug ist kannst du die batch vor dem Runterfahren des gasts ausfuehren lassen.
Plan B: ein autoit-script auf dem Host laufen lassen, welches alle 60 sekunden checkt ob es einen Prozess namens vmware-vmx.exe gibt - gibt es keinen solchen Prozess mehr kann der Host runtergefahren werden.
Das ist mit ein paar Zeilen autoit erledigt
Wenn das timeout hoch genug ist kannst du die batch vor dem Runterfahren des gasts ausfuehren lassen.
Plan B: ein autoit-script auf dem Host laufen lassen, welches alle 60 sekunden checkt ob es einen Prozess namens vmware-vmx.exe gibt - gibt es keinen solchen Prozess mehr kann der Host runtergefahren werden.
Das ist mit ein paar Zeilen autoit erledigt
- continuum
- UNSTERBLICH(R.I.P.)
- Beiträge: 14759
- Registriert: 09.08.2003, 05:41
- Wohnort: sauerland
- Kontaktdaten:
so zum Beispiel:
Wenn du es kompiliert haben willst sag Bescheid - aber manche Virenscanner werden ueber so etwas meckern ...
Code: Alles auswählen
#include <Process.au3>
While 1
$PID = ProcessExists("vmware-vmx.exe")
If not $PID Then MsgBox(4096, "automatic shutdown", "no VMs running - bye")
If not $PID Then Shutdown(1)
Sleep(5000)
WEnd
Wenn du es kompiliert haben willst sag Bescheid - aber manche Virenscanner werden ueber so etwas meckern ...
Code: Alles auswählen
Module Module1
Sub Main()
Misc.InitSystem("test", "VMControlhost")
Dim timeout As Integer = Misc.ReadApplicationConfig("TimeOut", 5)
Dim vmpfad As String = Misc.ReadApplicationConfig
("VMPfad", "C:\Programme\vmware\vmware workstation\vmplayer.exe")
Dim vmstartoption As String = Misc.ReadApplicationConfig("VMStartOption", "-X
-K ""D:\test.vmx""")
Try
Dim p As System.Diagnostics.Process
p = System.Diagnostics.Process.Start(vmpfad, vmstartoption)
p.WaitForExit()
Logging.inf("Prozess wurde mit Wert " & p.ExitCode & " beendet")
Catch ex As Exception
Logging.err(ex)
Logging.inf("VMWare-Datei nicht gefunden")
End Try
System.Diagnostics.Process.Start("shutdown", "-s -f -t " & timeout)
End Sub
End Module
Mit Microsoft Visual Basic 2005 Express Edition erstellt. Erfordert DotNet 2.0!
Für die Erstellung des Programms benötigt man auch noch eine dll Datei. Diese dll Datei erstellt dann den Pfad test\VMcontrolhost. Dort kann man das Timeout und den Pfad der VM ändern. Das Programm würde auch für andere Programme gehen! Logging und Misc stammt aus der englefield.dll (http://www.englefield.de)!
Zurück zu „VMware Player und VMware Workstation Player“
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste