@echo off SET ESXHOST= SET USER= SET PASS= SET DATASTOREPATH=/vmfs/volumes/%ESXHOST%2LD1 SET SNAPSHOTPATH=/vmfs/volumes/Snapshots c: cd "c:\program files\vmware\vmware vi remote cli\bin" if "%3" == "" ( echo. echo Missing parameteres (hostname username password) echo. goto end SET ESXHOST=%1 SET USER=%2 SET PASS=%3 ) echo. echo ESX: %1 (%TIME%) echo. FOR /F %%A IN ('plink %USER%@%ESXHOST% -pw %PASS% ls %DATASTOREPATH%/') do call :SNAPSHOT %%A goto end :SNAPSHOT if "%1" == "ISO" goto end echo. echo VM: %1 (%TIME%) echo Create VM Snapshot directory plink %USER%@%ESXHOST% -pw %PASS% mkdir %SNAPSHOTPATH%/%1 echo. echo Copy VMX file plink %USER%@%ESXHOST% -pw %PASS% cp %DATASTOREPATH%/%1/%1.vmx %SNAPSHOTPATH%/%1 echo. echo Remove existing Snapshots plink %USER%@%ESXHOST% -pw %PASS% rm %SNAPSHOTPATH%/%1/%1.vmdk plink %USER%@%ESXHOST% -pw %PASS% rm %SNAPSHOTPATH%/%1/%1_1.vmdk REM echo. REM echo Stop VM %1 REM vmware-cmd.pl -H %ESXHOST% -U %USER% -P %PASS% %DATASTOREPATH%/%1/%1.vmx stop soft echo. echo Take snapshot of %1 vmware-cmd.pl -H %ESXHOST% -U %USER% -P %PASS% %DATASTOREPATH%/%1/%1.vmx createsnapshot "SS1" "Nightly Snapshot" 1 1 REM echo. REM echo Startup %1 REM vmware-cmd.pl -H %ESXHOST% -U %USER% -P %PASS% %DATASTOREPATH%/%1/%1.vmx start soft echo. echo Copy VM disk %1-flat.vmdk vmkfstools.pl --server %ESXHOST% --username %USER% --password %PASS% -a lsilogic -d thin -i %DATASTOREPATH%/%1/%1.vmdk %SNAPSHOTPATH%/%1/%1.vmdk vmkfstools.pl --server %ESXHOST% --username %USER% --password %PASS% -a lsilogic -d thin -i %DATASTOREPATH%/%1/%1_1.vmdk %SNAPSHOTPATH%/%1/%1_1.vmdk echo. echo remove snapshot vmware-cmd.pl -H %ESXHOST% -U %USER% -P %PASS% %DATASTOREPATH%/%1/%1.vmx removesnapshots echo. :end