VMWareサービスの起動/停止のバッチ処理



●環境
Windows 7 Pro 64bit + VMWare Player 12


●発端
・VMWareサービスが起動しっぱなしなのが気持ち悪かった
・NICの有効無効を切り替えるのがめんどくさかった


●バッチファイル
(1) 常駐しているVMWareサービスのスタートアップを手動に切り替えておく
表示名サービス名
VMware Authorization ServiceVMAuthdService
VMware DHCP ServiceVMnetDHCP
VMware NAT ServiceVMware NAT Service
VMware USB Arbitration ServiceVMUSBArbService
※あくまで私の環境で常駐していたもの(VMWareのバージョンや種類にも依存すると思います)

(2) バッチファイルの作成
:: VMWare関連のサービスを起動/停止するもの
:: 対象サービス->VMAuthdService, VMnetDHCP, VMware NAT Service, VMUSBArbService

@echo off
:: 環境変数のローカライズをする
setlocal

:: フラグ変数の宣言
set statetype=0


:: サービスの状態を確認してフラグを立てる
sc query "VMAuthdService" | findstr "RUNNING" > NUL
if %errorlevel%==0 set /a statetype=%statetype%+1000
sc query "VMnetDHCP" | findstr "RUNNING" > NUL
if %errorlevel%==0 set /a statetype=%statetype%+100
sc query "VMware NAT Service" | findstr "RUNNING" > NUL
if %errorlevel%==0 set /a statetype=%statetype%+10
sc query "VMUSBArbService" | findstr "RUNNING" > NUL
if %errorlevel%==0 set /a statetype=%statetype%+1

:: フラグが全て立ってたら停止処理、それ以外なら起動処理
if %statetype% == 1111 (
goto ALLSTOP
) else (
goto ALLSTART
)


:ALLSTOP
:: サービスを停止する
net stop "VMAuthdService"
net stop "VMnetDHCP"
net stop "VMware NAT Service"
net stop "VMUSBArbService"
:: VMWareのNICを無効にする
netsh interface set interface "VMware Network Adapter VMnet1" disabled
netsh interface set interface "VMware Network Adapter VMnet8" disabled
goto END


:ALLSTART
:: 起動されてないサービスを起動する
sc query "VMAuthdService" | findstr "RUNNING" > NUL
if not %errorlevel%==0 net start "VMAuthdService"
sc query "VMnetDHCP" | findstr "RUNNING" > NUL
if not %errorlevel%==0 net start "VMnetDHCP"
sc query "VMware NAT Service" | findstr "RUNNING" > NUL
if not %errorlevel%==0 net start "VMware NAT Service"
sc query "VMUSBArbService" | findstr "RUNNING" > NUL
if not %errorlevel%==0 net start "VMUSBArbService"
:: VMWareのNICを有効にする
netsh interface set interface "VMware Network Adapter VMnet1" enabled
netsh interface set interface "VMware Network Adapter VMnet8" enabled
goto END


:END
:: 環境変数のローカライズの終了
endlocal

後はVMWareを起動する前と終了した後にこのバッチファイルを実行するだけ


●落穂そのまま
NICの有効/無効は現在の状態に関わらず操作が可能だったので実行文ベタ打ち


●参考にさせて頂いた文献
longkey1 - VMware Server2.0@Windowsのサービスの自動起動バッチ

正直内容まんまです



2016/05/17 作成



トップに戻る