VMWare skripten Teil 2

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. ;-)

Dieser Beitrag wurde unter Admin-Stuff, Windows-Stuff abgelegt und mit , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

4 Antworten auf VMWare skripten Teil 2

  1. ron sagt:

    hallo,
    funktioniert das tolle script auch mit dem vmWare Player?

  2. Jörg sagt:

    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

  3. Wolf sagt:

    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