仮想マシンの起動に、毎日何分クリックし続けていますか?
ソフトウェアのテストに仮想マシンを1台使うだけなら、VMware의 GUIで「パワーオン」ボタンを押すのは簡単です。しかし、Domain Controller、Client、Firewall、Web Serverなど、5〜7台の構成でネットワークラボを構築している場合を想像してみてください。毎朝、各マシンのロードを待ちながら次々とクリックしていく作業は、生産性の面で大きな苦痛となります。
以前、古いサーバーでラボ環境を管理していた際、私はよくSSH経由で操作していました。その時にvmrunの真価を知りました。このツールを使えば、マシンの高速起動が可能になり、完全な自動化スクリプトを作成できます。起動順序の指定や、テスト前のスナップショット作成、コンソール画面を開かずに仮想マシンへのファイルコピーなどが可能になります。
システムにおけるvmrunの位置付け
vmrunは、VMware WorkstationやFusionをインストールすると利用できるコマンドラインインターフェース(CLI)ユーティリティです。これにより、ターミナルから直接ハイパーバイザーを制御できます。Windowsの場合、通常は以下のパスに実行ファイルがあります printer:
C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe
利便性を高めるために、このパスを環境変数(PATH)に追加することをお勧めします。設定後は、長いパスを入力することなく、どこからでもvmrunと入力するだけで呼び出せるようになります。
クイックチェック:
CMDまたはPowerShellを開き、次のように入力します:
vmrun
もしヘルプメッセージ(パラメータの一覧)が表示されれば、準備は完了です。
仮想マシン制御の必須コマンド
vmrunの基本構文は:vmrun -T [プラットフォーム] [コマンド] "vmxファイルのパス" [オプション] です。VMware Workstationの場合、プラットフォームのパラメータは常に ws となります。
1. 仮想マシンの起動 (Start)
仮想マシンのウィンドウを表示して起動するか、リソースを節約するためにバックグラウンドで実行するかを選択できます。
# GUIありで実行
vmrun -T ws start "D:\VMs\Ubuntu\Ubuntu.vmx"
# バックグラウンド実行(Headlessモード - 非常に軽量)
vmrun -T ws start "D:\VMs\Ubuntu\Ubuntu.vmx" nogui
noguiモードは、仮想マシンにSSH接続するだけで済む場合に非常に便利です。コンソールウィンドウを描画する必要がないため、グラフィックカードの負荷を大幅に軽減できます。
2. 停止と再起動 (Stop & Reset)
仮想の「コンセントを抜く」ような強制終了ではなく、softパラメータを使用してOSに安全なシャットダウンを要求しましょう。
# 安全なシャットダウン(VMware Toolsのインストールが必要)
vmrun -T ws stop "D:\VMs\Ubuntu\Ubuntu.vmx" soft
# 仮想マシンの再起動
vmrun -T ws reset "D:\VMs\Ubuntu\Ubuntu.vmx" soft
3. 実行中のマシンリストを確認
現在、いくつの仮想マシンがシステムのRAMを占有しているかを確認するには、次のコマンドを使用します:
vmrun list
スナップショットを数秒で管理
スナップショットは、システムをいじくり回すIT担当者にとっての「保険」です。何重ものメニューをクリックする代わりに、vmrunならコマンド一つでスナップショットを処理できます。
クイックスナップショット作成:
vmrun -T ws snapshot "D:\VMs\Win10\Win10.vmx" "Appインストール前のバックアップ"
状態の復元 (Revert):
万が一設定をミスしても、一行のコマンドで元のクリーンな状態に戻せます:
vmrun -T ws revertToSnapshot "D:\VMs\Win10\Win10.vmx" "Appインストール前のバックアップ"
ゲストOSとの直接対話
これはvmrunの最も価値のある機能です。ホストマシンから仮想マシンの内部でコマンドを実行できます。必須条件として、仮想マシンが起動しており、**VMware Tools**がインストールされている必要があります。
1. 仮想マシン内でプログラムを実行
例:ホストのCMDからWindows仮想マシンのメモ帳(Notepad)を開く:
vmrun -T ws -gu [ユーザー名] -gp [パスワード] runProgramInGuest "D:\VMs\Win10.vmx" "C:\Windows\notepad.exe"
2. 超高速ファイルコピー
私はよくこのコマンドを使用して、設定ファイルを複数の仮想マシンに一括で流し込んでいます:
vmrun -T ws -gu admin -gp 123456 copyFileFromHostToGuest "D:\VMs\Win10.vmx" "C:\lab\config.txt" "C:\Users\admin\Desktop\config.txt"
実戦スクリプト:ワンクリックでラボ全体を起動
効率を最大化するために、マシンを順番に起動する .bat ファイルを作成しましょう。例:まずDomain Controllerを起動し、30秒待ってからClientマシンを起動するようにします。
@echo off
SET VMRUN="C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe"
echo Domain Controllerを起動中...
%VMRUN% -T ws start "D:\Lab\DC01\DC01.vmx" nogui
timeout /t 30
echo Web Serverを起動中...
%VMRUN% -T ws start "D:\Lab\WebServer\Web.vmx" nogui
echo Windows Clientを起動中...
%VMRUN% -T ws start "D:\Lab\Win10\Win10.vmx"
echo すべてのラボ環境の準備が整いました!
pause
実戦で役立つ注意点
- 二重引用符: VMXファイルのパスは常に
" "で囲んでください。フォルダ名にスペースが含まれている場合にこれがないと、確実にエラーになります。 - VMware Tools:
copyFileやsoft stopなどのコマンドは、Toolsがインストールされていないと動作しません。Toolsが常に「実行中(Running)」であることを確認してください。 - 管理者権限: システムに深く関わる一部の操作では、CMDを管理者権限で実行する必要があります。
- リソース管理: スクリプトで一度に大量の仮想マシンを起動しないでください。
timeoutコマンドを使用して間隔を空け、ディスクI/Oの負荷(I/O Wait)を抑えるようにしましょう。
vmrun を使いこなすことで、従来のGUI操作よりも遥かに柔軟に仮想化インフラを管理できるようになります。これは、VMwareを自動化プロセスや複雑なCI/CDパイプラインに統合するための第一歩です。ぜひ今日のラボから活用してみてください!

