ACHTUNG: Das hier veröffentlichte Skript funktioniert NICHT mit VMWare Server 2.x – das angepasste Skript wird hier verlinkt, sobald ich es fertiggestellt habe!
Wie bereits angekündigt habe ich meinen Kollegen um Erlaubnis gebeten, sein VBSkript hier veröffentlichen zu dürfen und er hat nichts dagegen – vielen Dank dafür, Thomas!
Das nachfolgende Skript aktiviert die VMWare-Netzwerkkarten, startet die VMWare-Dienste und dann die VMWare Server Console, von hier aus kann nun eine beliebige VMWare-Maschine gestartet werden. Wird die VMWare-Maschine heruntergefahren und die VMWare Server Console geschlossen, sorgt das Skript dafür, das die VMWare-Dienste beendet und die VMWare-Netzwerkkarten deaktivert werden.
Das Skript bleibt dabei die ganze Zeit im Hintergrund ohne sichtbares Fenster aktiv und beendet sich abschliessend selbst.
Damit das alles funktioniert, müssen das Skript und das auch in Teil 1 erwähnte Tool DevCon im Installationsordner von VMWare Server liegen (\Progamme\VMWare\VMWare Server).
Kopiert euch den nachfolgenden Code und speichert ihn z.B. als vmware.vbs ab:
' ----------------------------------
' Programm : VMWARE.VBS
' Autor : Thomas Föhre
' Datum : 17.07.2008
' ----------------------------------
Option Explicit
Dim ws
' ----------------------------------
' Objekte erzeugen
' ----------------------------------
set ws = WScript.CreateObject("WScript.Shell")
ws.Run "devcon enable @ROOT\VMWARE\0000", 7, true
ws.Run "devcon enable @ROOT\VMWARE\0001", 7, true
ws.Run "net start " + Chr (34) + "VMware Authorization Service" + Chr (34), 7, true
ws.Run "net start " + Chr (34) + "VMware NAT Service" + Chr (34), 7, true
ws.Run "net start " + Chr (34) + "VMware DHCP Service" + Chr (34), 7, true
ws.Run "net start " + Chr (34) + "VMWare Registration Service" + Chr (34), 7, true
ws.Run "net start " + Chr (34) + "VMware Virtual Mount Manager Extended" + Chr (34), 7, true
ws.Run "vmware.exe", 1, true
ws.Run "net stop " + Chr (34) + "VMWare Registration Service" + Chr (34), 7, true
ws.Run "net stop " + Chr (34) + "VMware NAT Service" + Chr (34), 7, true
ws.Run "net stop " + Chr (34) + "VMware DHCP Service" + Chr (34), 7, true
ws.Run "net stop " + Chr (34) + "VMware Virtual Mount Manager Extended" + Chr (34), 7, true
ws.Run "net stop " + Chr (34) + "VMware Authorization Service" + Chr (34), 7, true
ws.Run "devcon disable @ROOT\VMWARE\0000", 7, true
ws.Run "devcon disable @ROOT\VMWARE\0001", 7, true
Mit einer kleinen Änderung am VBSkript kann man auch gezielt eine bestimmte VMWare-Maschine starten, das zu muss diese Zeile:
ws.Run "vmware.exe", 1, true
etwas angepasst werden und sollte dann so aussehen:
ws.Run "vmware.exe -x " + Chr (34) + "x:\pfad\zur vm\vmware.vmx" + Chr (34), 1, true
Hier ist natürlich x:\ gegen einen realen Laufwerksbuchstaben und \pfad\zur vm\ durch den realen Pfad zur VMX-Datei zu ersetzen; das + CHR (34) erzeugt die benötigten Anführungszeichen, wenn im Pfad Leerzeichen vorhanden sind. Gibt es keine, sollte die Zeile so aussehen:
ws.Run "vmware.exe -x x:\pfad\zur\vm\vmware.vmx", 1, true
Bei Verwendung des angepassten Skripts beendet sich die VMWare Server Console nicht von selbst, man muss sie also nach dem Herunterfahren der VMWare-Maschine händisch beenden. Dann allerdings verrichtet das Sktipt wieder brav seinen Dienst, beendet die VMWare-Dienste und deaktiviert die VMWare-Netzwerkkarten. Ich starte meine VMWare-Maschinen nur noch auf diese Weise.
hallo,
funktioniert das tolle script auch mit dem vmWare Player?
Theoretisch sollte das kein Problem sein; ich kann es momentan mangels Hardware nicht direkt test, werde aber bei Gelegenheit mal nen VMWare Player installieren – und berichten
Hallo,
funktioniert das script auch auf Win 7 64 bit ?
Die devcon.exe gibt es ja nicht für Win 7.
Was müsste man ändern damit das damit funktioniert?
Danke.
Wolf
Ähh, doch, die gibt es – etwas sperriger Link:
http://social.technet.microsoft.com/wiki/contents/articles/how-to-obtain-the-current-version-of-device-console-utility-devcon-exe.aspx