Seite 1 von 1
VMware Player per script herunterfahren, nicht "abwürge
Verfasst: 07.02.2006, 13:39
von fgasser
Hallo,
ich lasse den VMware Player als Windows Dienst automatisch hochlaufen, ähnlich dem GSX Server, funzt auch recht gut. Einziges Problem: Beim Herunterfahren des Host wird der Dienst natürlich auch beendet, was zur Folge hat, dass das Gast OS im Player abgewürgt wird. Nun meine Frage: gibt es eine Möglichkeit dies besser zu machen? Kann ich den VMware Player in einem Script auf eine Art Ferngesteuert herunterfahren, bevor der Dienst beendet wird.
Gruss & vielen Dank für Eure Mühe!
Puemer
Verfasst: 07.02.2006, 16:53
von continuum
Wie kann man den mit deinem Gast Kontakt aufnehmen?
SSH? , telnet?, rdesktop? - polnisch - Kisuaheli?
Verfasst: 07.02.2006, 20:53
von claxan
Hallo Zusammen,
Habe zur Zeit das gleiche Problem, aber ich habe folgenden Versuch gestartet und zwar mit
gpedit.msc -> Computer Configuration -> Windows Settings -> Scripts (Startup/Shutdown) -> Shutdown
unter Shutdown habe ich folgendes Script hinzugefügt shutdown.vbs
das Script wird in folgendes Verzeichnis gespeichert
%windir%\System32\GroupPolicy\Machine\Scripts\Shutdown
Mit dem psshutdown.exe kann man ein Remote System einen Shutdown ausführen lassen danach warte ich xxx Sekunden.
Habe das ganze noch überarbeitet und zwar so
Old Code from shutdown.vbs
Set WshShell = CreateObject("WScript.Shell")
Return = WshShell.Run("psshutdown.exe -k \\<Remote Server> -u administrator -p Password -t 0 -f",,true)
WScript.Sleep 300000 '60000 = 1min
Anstatt xxx sekunden warten schaue ich ob der Win32_Process vmware-vmx.exe noch läuft, sobald der Process nicht mehr läuft wird der Host heruntergefahren oder wenn der Process ewig läuft wird nach 10min oder so der Host auch runtergefahren zur Sicherheit.
Nun das fertige shutdown.vbs Script
Set WshShell = CreateObject("WScript.Shell")
On error resume next
Return = WshShell.Run("D:\VMWareImages\psshutdown.exe -k \\<Servername> -u <Username> -p Password -t 2 -f")
WScript.Sleep 5000
zaehler = 0
meineZahl = 100
WshShell.LogEvent 1, "System wird heruntergefahren"
Do Until meineZahl = 0
meineZahl = meineZahl - 1
zaehler = zaehler + 1
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'vmware-vmx.exe'")
If colProcesses.Count = 0 Then
WshShell.LogEvent 4, "System heruntergefahren"
WScript.Quit
Else
WScript.Sleep 15000
End If
If zaehler = 20 Then
WshShell.LogEvent 4, "Nach 5 min System heruntergefahren"
WScript.Quit
End If
Loop
Gruss Markus