Admins-Tipps.net - Tipps und Tricks rund um die EDV

arrow Microsoft arrow Windows Scripting Host arrow VBScript zum Starten einer VMWare-VM und Connect per RDP
Tipps und Tricks
Algin Technology
BSD/Linux/UNIX
Citrix
Clearswift
Fenestrae
Hewlett Packard
Microsoft
Novell
VMWare
Admins-Projekte
VMWare Backup
Net-Inventory
Tutorials
Linux
Microsoft
Unattended Install
Glossar & Co
Glossar
Status-Codes
Standard Windows SIDs
TCP/UDP Ports
Sonstiges
Admins-Blog
Admins Forum
Downloads

Login

RSS Feed

admins_icon.JPG  in Google-Toolbar


Partner-Sites

www.Admins-Tipps.net
www.Hosting-Tipps.net
www.DSL-Tipps.net
www.Webmaster-Tipps.net

Logo sponsored by MISCO 100x36pixel



Home | Forum | Blog | Downloads | Impressum | Sitemap | Hilfe / FAQ

VBScript zum Starten einer VMWare-VM und Connect per RDP Drucken E-Mail
Benutzer Bewertung: / 1
SchlechtSehr Gut 
Geschrieben von Stefan Mrosek   

Dieses Script startet eine VMWare-Virtual Maschine auf einem Remote VMWare-Server und verbindet anschließend per Terminal-Console zum Gastsystem.

Zur Ausführung wird lokal die VMCom-Api von VMWare benötigt. (Frei verfügbar auf VMWare.com)

Achtung: in dieser Version muß in der Konfiguration ein Nutzer mit Passwort hinterlegt werden, der die VM-Starten darf.
Vor Ausführung muß das Script konfiguriert werden! 

 Script als *.vbs abspeichern:

'Region Description
'
' Name:           Start_Reomote_VM
' Author:         Stefan Mrosek
' Version:        0.1
' Description:    Das Script startet eine VM auf einem RemoteServer, prüft ob diese läuft
'                 und startet anschließend ein Programm auf dem lokalen Rechner
'
'
' EndRegion

'Region Changelog

   ' 11.12.06      Start of Coding

'EndRegion

'Region Konfiguration

               
vmfile = "E:\w2k_ws1\w2k_ws1.vmx"      'Pfad zum VMX-File der VM - relativ zum VMWare Server
local_app = "mstsc.exe"            'Das lokal zu statende Programm
local_app_Para = "/v:VMGuest"      'Parameter für den Programmaufruf

remote_host = "172.24.128.8"      'IP-Adresse des VMWare Servers
remote_port = "902"               '902 ist Standard
remote_user = "Nutzer"            'Nutzer auf dem VMWareServer, der die VM starten darf
remote_pass = "Passwort"         'Passwort

VMStartMaxTries = 20            'Anzahl der Versuche, die VM zu Starten
VMStartTryInterval = 30            'Sekunden zwischen den Versuchen
VMStartedHeartbeats = 300         'Anzahl der benötigten Hartbeats um zu bestätigen das die VM
                           'Up&Running ist
'EndRegion

'### Ab hier wirds ernst - nichts mehr Ändern

'Region Global Settings
'On Error Resume Next
Set wshShell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set wshNet = CreateObject("WScript.Network")

Const vmExecutionState_On = 1
Const vmExecutionState_Off = 2
Const vmExecutionState_Suspended = 3
Const vmExecutionState_Stuck = 4
Const vmExecutionState_Unknown = 5
Const vmPowerOpMode_Hard = 1
Const vmPowerOpMode_Soft = 2
Const vmPowerOpMode_TrySoft = 3

Const OneSecond = 1000


'EndRegion

'Region Objekte Initialisieren
Set cp = CreateObject("VmCOM.VmConnectParams")
Set server = CreateObject("VmCOM.VmServerCtl")
Set thevm = CreateObject("VmCOM.VmCtl")

If Err.number <> 0 Then
    MSG = MsgBox("Es schein Probleme mit der VMCom-API zu geben.", vbCritical, " ERROR")
   WScript.Quit
End If

cp.hostname = remote_host
cp.username = remote_user
cp.password = remote_pass
cp.port = remote_port
'EndRegion

'Region Verbindung zum VMWare Server herstellen
connected = False
For tries_srv = 1 To 10
   server.Connect cp
   If Err.number = 0 Then
         connected = True
         Exit For
   End If
   WScript.Sleep OneSecond
   Err.clear
Next
 
If Not connected Then
    MSG = MsgBox("Keine Verbindung zum VMWare-Server - Verbindungsdaten prüfen.", vbCritical, " ERROR")
   WScript.Quit
End If   
'EndRegion

'Region Verbindung zur VM herstellen
connected_m = False
For tries_vm = 1 To 10
   thevm.Connect cp, vmfile
   If Err.number = 0 Then
         connected_m = True
         Exit For
   End If
   WScript.Sleep OneSecond
   Err.clear
Next
 
If Not connected_m Then
    MSG = MsgBox("Keine Verbindung zur VM - Verbindungsdaten prüfen.", vbCritical, " ERROR")
   WScript.Quit
End If   
'EndRegion

'Region Status der VM ermitteln
ps = thevm.ExecutionState
 
If ps = vmExecutionState_On Then
    is_on = True   'VM läuft
    MSG = MsgBox("Die VM läuft bereits.", vbExclamation, "Hinweis")

ElseIf ps = vmExecutionState_Off Or ps = vmExecutionState_Suspended Then
    was_on = False   'ist Aus
   is_on = False
Else
    MSG = MsgBox("Die VM befindet sich in einem undefiniertem Zustand - keine Verbindung möglich.", vbCritical, " ERROR")
   WScript.Quit
End If

'EndRegion

'Region VM Starten wenn nötig
If is_on = False Then   
  geton = thevm.start(vmPowerOpMode_Soft)
  'Abwarten bis Hartbeat OK
  For tries_on = 1 To VMStartMaxTries
    Heartbeat = thevm.Heartbeat
    If Heartbeat > VMStartedHeartbeats Then
      is_on = True
      Exit For
    End If
  WScript.Sleep VMStartTryInterval * OneSecond
  Next
  If is_on = False Then
    MSG = MsgBox("Start der VM fehlgeschlagen - Bitte Zustand prüfen.", vbCritical, " ERROR")
   WScript.Quit
  End If
End If
'EndRegion

'Region lokales Programm Starten
If is_on = True Then
   'If fso.FileExists (local_app) Then
      On Error Resume Next
      Set oExec = wshShell.run(local_app & " " & local_app_Para)
   'End If   
End If

'EndRegion


Zu Favoriten hinzufügen (215) | Artikel zitieren | Aufgerufen: 9662

  Kommentare (2)
RSS Kommentare
 1 Geschrieben von: lemmond, am 22-05-2007 08:13
Maschine wird hochgefahren, Skript meldet aber Fehler, daß der Start der VM fehlgeschlagen ist... Schade, klappt sonst ganz gut.
 2 Geschrieben von: admin, am 22-05-2007 09:40
Versuch mal VMStartMaxTries oder VMStartedHeartbeats in der Konfig höher zu setzen. Eventuell braucht deine VM zu lange zum Starten?

Nur registrierte Benutzer können Kommentare schreiben.
Bitte melden Sie sich an oder registrieren Sie sich.

Powered by AkoComment Tweaked Special Edition v.1.4.6
AkoComment © Copyright 2004 by Arthur Konze - www.mamboportal.com
All right reserved

Letzte Aktualisierung ( Montag, 11 Dezember 2006 )
 
< zurück   weiter >

Admins-Tipps.net - Tipps und Tricks rund um die EDV und
Hosting-Tipps.net - Der Preis-Leistungs-Vergleich der Webhoster
sind Projekte von Stefan Mrosek (c) 2007