「 Microsoft Windows (WIN) 」を使用するローカル DEV マシンで、 「 Oracle VirtualBox (VBOX)」「Graphical User Interface (GUI) 」を使用せずに「仮想マシン (VM) 」の自動起動を実行したいと考えています。
完全に実行中のバックグラウンド プロセスでそれを行うにはどうすればよいですか?
「 Microsoft Windows (WIN) 」を使用するローカル DEV マシンで、 「 Oracle VirtualBox (VBOX)」「Graphical User Interface (GUI) 」を使用せずに「仮想マシン (VM) 」の自動起動を実行したいと考えています。
完全に実行中のバックグラウンド プロセスでそれを行うにはどうすればよいですか?
解決
トリックは、GUI なしで VM を実行することです。これにより、VM を WIN サーバー上でサービスのように簡単に実行することもできます。
前提条件は、いくつかの VM が存在することです。すでにいくつかあります。以下にその名前を代わりに入れます{vm_name}
。
1) まず、組み込みの実行ファイル「VBoxHeadless.exe」を使用します。
ファイルを作成
vm.run.bat
と
cd "c:\Program Files\Oracle\VirtualBox\"
VBoxHeadless.exe -s {vm_name} -v on
それを実行してテストします - 「コマンド シェル」と呼ばれるWIN の「コマンド ライン インターフェイス (CLI) 」を使用すると、バックグラウンドで実行されている VM が開かれます。
vm.run.bat
2) 次に、「Windows ベースのスクリプト ホスト (WSCRIPT)」と言語「Microsoft Visual Basic Script (VBS)」を使用し、上記のファイル「vm.run.bat」を実行します。
ファイルを作成
vm.run.vbs
コードを入れる
Set WshShell = WScript.CreateObject("WScript.Shell")
obj = WshShell.Run("vm.run.bat", 0)
set WshShell = Nothing
実行してテストします - CLI はバックグラウンドで実行されます。
wscript.exe vm.run.vbs
参照
VBoxManage を使用して、VM をヘッドレスで起動できます。
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "Your VM name" --type headless
私は、うまく機能するサミュエルのソリューションに似たものを使用しました。
デスクトップ (または任意のフォルダー) で右クリックし、[新規] -> [ショートカット] に移動します。
ターゲットに次のように入力します。
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm {uuid} --type headless
名前に任意の名前を入力し、[完了] をクリックします。
次に、同じ vm を停止するには、ターゲットが次の新しいショートカットを作成します。
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm {uuid} poweroff
これらをダブルクリックすると、ウィンドウが開いたままになることなく VM が起動および停止します。
VirtualBox 4.2以降では、 Shiftキーを押しながら vm を起動して、完全にバックグラウンドで実行できます。詳細はこちらをご覧ください。
本当に最も一貫性のあるオプションは、タスク スケジューラを使用することです。
これにはいくつかの非常に簡単な手順が必要ですが、技術的なバックグラウンドを持つ人なら誰でもセットアップできるように、詳細に説明します。
案内するC:\Users\YourUserNameHere\VirtualBox VMs
上記のフォルダ名は通常、仮想マシン名を反映しています。これは、VirtualBox Manager 自体をチェックすることで確認できます。
マシン名はWindowsXPSP3
.
最初にスタート ボタンをクリックし、引用符なしで「タスク スケジューラ」と入力します。次に、タスク スケジューラを開きます。
タスク スケジューラの左側に構造ツリーが表示されます。を右クリックしTask Scheduler Library
ます。を左クリックNew Folder...
:
フォルダーに覚えやすい名前を付けて [ User Custom
OK ] をクリックします (使用したい既存のフォルダーが既にある場合は、代わりに次の段落にスキップしてください)。
新しく作成したフォルダー (私の場合は ) をクリックしUser Custom
て強調表示します。右側の空のリストを右クリックし、次を左クリックしますCreate New Task...
。
ここで、トリッキーな問題が発生します。私の指示に従ってください。機能しなかったために反対票を投じたい場合、またはコメントで「これは機能しませんでした」と言う場合は、ここでステップをスキップしたに違いありません. 戻ってきて、もう一度試してください。
Name
とDescription
は好きなものにすることができます。これは単に美的であり、機能には影響しません。仮想マシンにちなんで名前を付け、簡単な説明を付けます。重要なのは、次のことを選択することRun whether user is logged on or not
ですRun with highest privileges
。
上部のタブに切り替えてTriggers
左クリックしますNew...
。Begin the task:
組み合わせボックスを に切り替え、At Startup
[OK] を左クリックします。
上部のタブに切り替えてActions
左クリックしますNew...
。[参照] をクリックして (これを手動で入力しようとしないC:\Program Files\Oracle\VirtualBox
でください。頭が痛くなります)、 に移動します。ハイライトVBoxManage.exe
して左クリックOpen
:
実行可能ファイルと引用符を除くすべてを から にコピーProgram/script:
しStart in (optional):
ます。
最後に、次の行を入力しAdd arguments (optional):
て [OK] をクリックします。
startvm "YourVirtualMachineNameFromStep1" --type headless
私の場合は、次を使用します。
startvm "WindowsXPSP3" --type headless
私のConditions
タブは通常、次のように設定されています。
Settings
タブが次のようになっていることを確認しますが、黄色でマークされた項目が私のものと一致するように設定されていることを確認してください。これにより、いくつかの前提条件がまだ準備されていない場合に、仮想マシンの起動を数回再試行し、仮想マシンが 3 日後に終了しないことが保証されます。あなたが何をしているのかわからない限り、他のすべてをデフォルトのままにしておきます。ここで紹介したことを実行せず、うまくいかない場合は、あなたの問題です。
最後に、ウィンドウの下部にある [OK] をクリックしCreate Task
ます。これで完了です。
コンピューターを再起動すると、ログインして VirtualBox Manager を開くと、VM が実行されていることがわかります。
また、タスク スケジューラのバックアップを開いて、正常に実行されたことを確認したり、実行されなかった場合はエラーの内容を確認したりできます (ほとんどのエラーは、入力しないように指示した場所に手動で入力しようとするユーザーによるディレクトリ エラーです)。
別のマシンで、Linux サーバーを仮想マシンとしてセットアップし、独自の raw ソリッド ステート ハード ドライブを使用しました。ユーザーがログインしなくても、マシンが再起動された場合 (クラッシュ、Windows の更新など) にサーバーが自動的に再起動するようにしたかったのです。Server VM を実行するマシンに最初にログインすることなく、別のコンピューターからSamba共有 (laymens: ネットワーク経由で他のコンピューターと共有するものを含むフォルダー) にアクセスできたため、正常に機能したことがわかります。この 100% は、ユーザーのログイン後ではなく、システムの起動時に開始することを確認します。
Bruno Garett の回答に従って、私の経験では、vm.run.bat
ファイルのテストが失敗し、読み取り専用エラーが発生しますが、VB スクリプトを実行すると正常に動作します。誰かの時間を節約するためだけに。
また、ヘッドレスをシャットダウンするには、別のバッチ スクリプトを使用できます (Sam F のソリューションは、Bruno のソリューションでは機能しません)。
cd "c:\Program Files\Oracle\VirtualBox\"
VBoxManage controlvm "Ubuntu Server" acpipowerbutton
2行目はここから取得しました。必要なオプションを使用できます。