WinFuture-Forum.de: Vmware Server 1 Massen Shutdown - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Vmware Server 1 Massen Shutdown


#1 Mitglied ist offline   evil.baschdi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.639
  • Beigetreten: 11. Februar 07
  • Reputation: 56
  • Geschlecht:Männlich
  • Wohnort:127.0.0.1, breites #Neuland
  • Interessen:IT, Musik

geschrieben 24. November 2009 - 15:55

Hallo Zusammen,

sitze gerade an einer Batchdatei, die zu einer bestimmten Uhrzeit (wird dann über den Taskplaner angeworfen) sämtliche VMware Maschinen auf einem Server mit VMware 1.0.x herunterfahren soll.

Zitat

@echo off
rem --- Script zum VM-Shutdown 2009.11.24
rem --- Version 0.1
rem --- nur fuer VMServer Vers. 1.x mit vmware-cmd CommandLine!!!

rem --- Parameter setzen ---
rem --- Datum einlesen im Format <<< yyyymmdd >>>
set CURRENTDATE=%date:~6,4%%date:~3,2%%date:~0,2%

rem --- VMWare Server Variablen
REM --- Pfad zur vmware-cmd
set VMFolder="C:\Programme\VMware\VMware Server"
REM --- erweitere temporär die Systemvariable
set path=%path%;%vmfolder%

rem ------------- anzupassende Variablen fuer VM -----------------
set vmxpath="E:\VM\Vers-VM-Server\Windows XP Professional.vmx"
REM --- Name der herunterzufahrenden VM u.a. fuer Logfilenamen verwendet
set VMname=VM-1
rem ------------- ENDE anzupassende Variablen fuer VM -------------

REM --- Status der VM wird geprueft und die VM wird entsprechend heruntergefahren
@echo Der aktuelle Status der VM wird geprueft. >> %currentdate%_%vmname%.log
call vmware-cmd %vmxpath% getstate > status.tmp
for /F "tokens=3 delims= " %%i in (status.tmp) do set state=%%i
@echo Der aktuelle status der VM ist: %state% >> %currentdate%_%vmname%.log

if "%state%" == "on" (
@echo Es wird versucht die VM herunterzufahren... >> %currentdate%_%vmname%.log
call vmware-cmd %vmxpath% stop trysoft
) else (
goto heruntergefahren
)

@echo Der aktuelle Status der VM wird erneut geprueft. >> %currentdate%_%vmname%.log
call vmware-cmd %vmxpath% getstate > status.tmp
for /F "tokens=3 delims= " %%i in (status.tmp) do set state=%%i
@echo Der aktuelle status der VM ist: %state% >> %currentdate%_%vmname%.log

if "%state%" == "on" (
@echo Da die VM anscheinend noch aktiv ist, wird versucht sie forciert herunterzufahren. >> %currentdate%_%vmname%.log
call vmware-cmd %vmxpath% stop hard
) else (
goto heruntergefahren
)

@echo Der aktuelle Status der VM wird erneut geprueft. >> %currentdate%_%vmname%.log
call vmware-cmd %vmxpath% getstate > status.tmp
for /F "tokens=3 delims= " %%i in (status.tmp) do set state=%%i
@echo Der aktuelle status der VM ist: %state% >> %currentdate%_%vmname%.log

if "%state%" == "on" (
@echo Fehler beim Herunterfahren der VM. >> %currentdate%_%vmname%.log
goto abbruch
)

:heruntergefahren
@echo Die VM %vmname% wurde heruntergefahren. >> %currentdate%_%vmname%.log

:abbruch
@echo Es sind Fehler aufgetreten! VM %vmname% konnte nicht heruntergefahren werden! >> %currentdate%_%vmname%.log
goto ende

:ende
@echo Vorgang wurde beendet. >> %currentdate%_%vmname%.log

@echo on


Funktioniert alles auch recht gut. Nur muss ich jetzt für jede VM das Script extra anpassen und zeitversetzt starten.
Da ich mich mit Bachdateien nicht sooo gut auskenne, da ich eigentlich das meiste mit C# und VBscript mache, hoffe ich, dass mir hier jemand dabei helfen kann, evtl in einer Schleife alle Ordner nach VMs abzuklappern oder ähnliches.
Eingefügtes Bild

"
Heute code ich, morgen debug ich und übermorgen caste ich die Königin auf int!"
P.S. Ich leiste keinen Support per PN. Wer ein Problem hat, ab damit ins Forum!
Windows 10 - Windows Anleitungen
0

Anzeige



Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0