moonxit
Goto Top

Wert einer VBS Variable an Batch übergeben

Hallo Zusammen

Ich arbeite moment gerade an einem Verfahren für das manuelle Erstellen von Snapshots von VMs, die in Citrix XEN Server laufen.

Mein Script, dass ich geschrieben habe, funktioniert dabei wunderbar, jedoch muss ich bei jedem Vorgang die Variablen innerhalb der Batchdatei ändern werden, was ich den nicht so versierten Delegierten nicht zu muten. Deshalb kam mir die Idee, dass ich die Variablen (z.B. Servername) über eine VBS Abfrage bei den Delegierten abfragen und diese an meine Batch datei übergeben könnte.

Leider konnte ich beim googeln nichts brauchbares finden.

Habt ihr eine Idee, wie ich dies machen könnte?

danke und gruss

MoonXIT

Content-ID: 122538

Url: https://administrator.de/contentid/122538

Ausgedruckt am: 22.11.2024 um 21:11 Uhr

Biber
Biber 12.08.2009 um 10:24:13 Uhr
Goto Top
Moin MoonXIT,

ist denn von einem der beiden benötigten Schnipsel (Batch und die VBSkript-Abfrage) schon ein Ansatz vorhanden oder noch gar nichts?

Grüße
Biber
MoonXIT
MoonXIT 12.08.2009 um 10:46:41 Uhr
Goto Top
Hallo Biber

Meine VBS Abfrage sieht beim Prototyp wie folgt aus
------------------------------------------------------------------------
dim VMNAME
dim Pseudo
dim SNAPSHOT_NAME
Dim WshShell

Pseudo = "_Snapshot"

VMNAME=inputBox ("Bitte den Namen der VM eingeben:" &Chr(13)&"[KEYSENSITIV]", "Eingabe der VM" ,"Ihr Eintrag")
SNAPSHOT_NAME = VMNAME & Pseudo

Meine Batchdatei Variante 1
SET REMOTE=-s <IPAdresse> -u root -pw <password>
SET XEPATH=c:\Programme\citrix\xencenter\
SET BACKUPPATH=c:\vmbackup

CLS
ECHO ==========
ECHO = BACKUP =
ECHO ==========
ECHO.
ECHO.


REM To backup more than one VM add one section for each VM.
REM Modify VM number for each section: VM_001 VM_002 VM_003 ...
REM set STATUS= to number of next VM, set STATUS=END for last VM


REM ======================================================================================
REM BEGIN VM Backup Section 1
REM ======================================================================================

:VM_001
SET VMNAME=PC1
SET STATUS=END
SET SNAPSHOT_NAME=PC1_Snapshot

GOTO VM_backup

REM ======================================================================================
REM END VM Backup Section 1
REM ======================================================================================

REM ======================================================================================
REM BEGIN Loop for backup process
REM ======================================================================================

:VM_backup
ECHO.
ECHO ============================
ECHO BACKUP VM %VMNAME%
ECHO ============================

ECHO.
ECHO Checking if old snapshot of VM %VMNAME% is available ...

SET COMMAND=""%XEPATH%xe" %REMOTE% template-list name-label="%SNAPSHOT_NAME%" --minimal"
FOR /F %%i in ('%COMMAND%') DO @set OLDTEMPLATEUUID=%%i

IF NOT "%OLDTEMPLATEUUID%"=="" GOTO delete_old_snapshot

ECHO No old snapshot, skipping delete.
GOTO no_old_snapshot


:delete_old_snapshot

ECHO Deleting old snapshot of VM %VMNAME% ...

"%XEPATH%xe" %REMOTE% template-param-set is-a-template=false uuid=%OLDTEMPLATEUUID%
"%XEPATH%xe" %REMOTE% template-uninstall uuid=%OLDTEMPLATEUUID% force=true template-uuid=%OLDTEMPLATEUUID%


:no_old_snapshot

ECHO.
ECHO Creating Snapshot from VM %VMNAME% ...

SET COMMAND=""%XEPATH%xe" %REMOTE% vm-snapshot vm=%VMNAME% new-name-label="%SNAPSHOT_NAME%""
FOR /F %%i in ('%COMMAND%') DO @set TEMPLATEUUID=%%i

ECHO.
ECHO Exporting VM Snapshot to %BACKUPPATH%\%VMNAME%\%VMNAME%-backup.xva ...

MKDIR %BACKUPPATH%\%VMNAME%"
"%XEPATH%xe" %REMOTE% template-export template-uuid=%templateuuid% filename="%BACKUPPATH%\%VMNAME%\%VMNAME%-backup.xva"

GOTO %STATUS%


REM ======================================================================================
REM END Loop for backup process
REM ======================================================================================


:END

ECHO Der Export wurde beendet

Die Eintragungen der Variablen Informationen sind bisher noch statisch eingetragen... mir fehlt halt der befehl um die Daten zu transportieren.