VMware Serverゲスト起動
VMware Serverゲスト起動をコマンドラインで起動してみる
- 起動中のゲスト一覧表示
> vmrun.exe -T server -h https://localhost:8333/sdk -u USERID -p PASSWORD list Total running VMs: 1 [standard] CentOS 5/CentOS 5.vmx
- 全てののゲスト一覧表示
> vmrun.exe -T server -h https://localhost:8333/sdk -u USERID -p PASSWORD listRegisteredVM Total running VMs: 2 [standard] CentOS5/CentOS5.vmx [standard] CentOS6/CentOS6.vmx
- 停止中のゲストを起動する
> vmrun.exe -T server -h https://localhost:8333/sdk -u USERID -p PASSWORD start "[standard] CentOS6/CentOS6.vmx"
- 起動中のゲストを停止する
※電源断と同じ挙動をするためお勧めはしません> vmrun.exe -T server -h https://localhost:8333/sdk -u USERID -p PASSWORD stop "[standard] CentOS6/CentOS6.vmx"
○コマンドライン
※コマンドの入っているPATHはもちろんインストール環境により変化します(下記例はWinXPの例)
予めcmdを起動して作業ディレクトリを変更しておく(PATH通しても良いと思います)
> cd "C:\Program Files\VMware\VMware Server\"
○バッチ&vbsで起動する。
いちいちコマンドを叩くのが面倒なので作成
作るのに無駄に時間かかったw
一応使ってますが何かあったときは自己責任でお願いします
※ファイルは2個で1つの動作をします。"chkpasswd.vbs"の初期化パラメータを適宜に変更してお使いください。
ダウンロード:vmserversetting.zip md5:2947DBC46B03B655C5062A54C93CDE32
○vmstart.bat
@echo off : 簡易説明 : chkpasswd.vbs : VMのGUEST起動時にパスワードを入力するVBS(初期化設定が必要) : : 画面クリア cls :setpasswd : パスワード入力 echo パスワードを入力してください for /f "usebackq tokens=*" %%i IN (`cscript chkpasswd.vbs`) DO @set basecom=%%i : 遅延処理有効 setlocal ENABLEDELAYEDEXPANSION :getrunvmlist : 起動中GUEST情報取得 set runvmcom=%basecom% list set N=0 for /f "usebackq tokens=*" %%i in ( `"%runvmcom%"` ) do ( set x[!N!]=%%i set /A N=N+1 ) if "%x[0]%"=="Error: Insufficient permissions in host operating system" ( echo パスワードがユーザIDまたはパスワードが間違っている可能性があります。 goto :setpasswd ) : 起動中のGUESTの個数取得 for /f "usebackq tokens=1,2,3,4" %%i in ( `echo %x[0]%` ) do @set runvmcnt=%%l : 全部のGUEST情報取得 set allvmcom=%basecom% listRegisteredVM set M=0 for /f "usebackq tokens=*" %%j in ( `"%allvmcom%"` ) do ( set y[!M!]=%%j set /A M=M+1 ) : 全GUSETの個数取得 for /f "usebackq tokens=1,2,3,4" %%i in ( `echo %y[0]%` ) do @set allvmcnt=%%l : VM一覧表示 call :CreatePrintList goto :exit :CreatePrintList : VM一覧表示 set RUNFG=0 cls echo VMの一覧です。 echo; for /L %%N in (1,1,%allvmcnt%) do ( for /L %%M in (1,1,%runvmcnt%) do ( if !x[%%M]!==!y[%%N]! (set RUNFG=1) ) if !RUNFG!==1 ( echo %%N: !y[%%N]! .... RUNNING ) if !RUNFG!==0 ( echo %%N: !y[%%N]! .... NOT RUNNING ) set RUNFG=0 ) : 操作するサービス設定 goto :setservice :setservice : 操作するサービス設定 echo; echo 処理をするサービスの数字を入力してください。バッチファイルを終了するは 0 を入力 set /p vmservice="> " if %vmservice%==0 ( goto :exit ) : 設定するステータス入力 goto :setvmstatus :setvmstatus : 設定するステータス入力 set RUNFG=0 echo; echo VMを「起動」または「停止」を選んでください。起動:1 , 停止:0 set /p vmstatus="> " if %vmstatus%==0 ( goto :vmstop ) if %vmstatus%==1 ( goto :vmstart ) if %RUNFG%==0 ( echo 入力値が範囲内にありません。最入力してください goto :setvmstatus ) :vmstart : GUEST起動処理 call set vmservice=%%y[%vmservice%]%% %basecom% start "%vmservice%" goto :getrunvmlist :vmstop : GUEST停止処理(通常は使わない) call set vmservice=%%y[%vmservice%]%% %basecom% stop "%vmservice%" goto :getrunvmlist :exit endlocal echo;○chkpasswd.vbs
'パスワード取得→基本構文作成スクリプト '---------------------------初期設定---------------------------- 'ユーザ名 USERID = "USERID" ' 'VMのPATH VMPATH = "C:\Program Files\VMware\VMware Server\" '--------------------------------------------------------------- Set WshShell = WScript.CreateObject("WScript.Shell") Set objPassword = CreateObject("ScriptPW.Password") strPassword = objPassword.GetPassword() Wscript.Echo Wscript.Echo( """" & VMPATH & "vmrun.exe"" -T server -h https://localhost:8333/sdk -u " & USERID & " -p " & strPassword )
![]() Windows |