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