48

「 Microsoft Windows (WIN) 」を使用するローカル DEV マシンで、 「 Oracle VirtualBox (VBOX)」「Graphical User Interface (GUI) 」を使用せずに「仮想マシン (VM) 」の自動起動を実行したいと考えています。

完全に実行中のバックグラウンド プロセスでそれを行うにはどうすればよいですか?

4

9 に答える 9

49

解決

トリックは、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 Sc​​ript (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

参照

于 2013-09-26T01:25:28.243 に答える
43

VBoxManage を使用して、VM をヘッドレスで起動できます。

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "Your VM name" --type headless
于 2014-06-13T08:23:46.217 に答える
19

私は、うまく機能するサミュエルのソリューションに似たものを使用しました。

デスクトップ (または任意のフォルダー) で右クリックし、[新規] -> [ショートカット] に移動します。

ターゲットに次のように入力します。

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm {uuid} --type headless

名前に任意の名前を入力し、[完了] をクリックします。

次に、同じ vm を停止するには、ターゲットが次の新しいショートカットを作成します。

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm {uuid} poweroff

これらをダブルクリックすると、ウィンドウが開いたままになることなく VM が起動および停止します。

于 2014-09-04T18:42:16.453 に答える
12

VirtualBox 4.2以降では、 Shiftキーを押しながら vm を起動して、完全にバックグラウンドで実行できます。詳細はこちらをご覧ください。

于 2015-10-29T09:42:28.573 に答える
9

本当に最も一貫性のあるオプションは、タスク スケジューラを使用することです。

ソリューションの実装

これにはいくつかの非常に簡単な手順が必要ですが、技術的なバックグラウンドを持つ人なら誰でもセットアップできるように、詳細に説明します。

  1. 仮想マシン名を特定する
  2. タスク スケジューラでタスクを作成する

1. 仮想マシン名を特定します

案内するC:\Users\YourUserNameHere\VirtualBox VMs

VirtualBox VM フォルダー

上記のフォルダ名は通常、仮想マシン名を反映しています。これは、VirtualBox Manager 自体をチェックすることで確認できます。

VirtualBox GUI

マシン名はWindowsXPSP3.

2. タスク スケジューラでタスクを作成する

最初にスタート ボタンをクリックし、引用符なしで「タスク スケジューラ」と入力します。次に、タスク スケジューラを開きます。

タスク スケジューラ検索

タスク スケジューラの左側に構造ツリーが表示されます。を右クリックしTask Scheduler Libraryます。を左クリックNew Folder...:

タスク スケジューラの新しいフォルダ

フォルダーに覚えやすい名前を付けて [ User CustomOK ] をクリックします (使用したい既存のフォルダーが既にある場合は、代わりに次の段落にスキップしてください)。

名前 新しいフォルダ

新しく作成したフォルダー (私の場合は ) をクリックしUser Customて強調表示します。右側の空のリストを右クリックし、次を左クリックしますCreate New Task...

新しいタスクを作成

ここで、トリッキーな問題が発生します。私の指示に従ってください。機能しなかったために反対票を投じたい場合、またはコメントで「これは機能しませんでした」と言う場合は、ここでステップをスキップしたに違いありません. 戻ってきて、もう一度試してください。

NameDescriptionは好きなものにすることができます。これは単に美的であり、機能には影響しません。仮想マシンにちなんで名前を付け、簡単な説明を付けます。重要なのは、次のことを選択すること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:

VBoxManage に移動

実行可能ファイルと引用符を除くすべてを から にコピー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 が実行されていることがわかります。

実行中の VM

また、タスク スケジューラのバックアップを開いて、正常に実行されたことを確認したり、実行されなかった場合はエラーの内容を確認したりできます (ほとんどのエラーは、入力しないように指示した場所に手動で入力しようとするユーザーによるディレクトリ エラーです)。

タスク スケジューラの成功

実際のユース ケースのテスト

別のマシンで、Linux サーバーを仮想マシンとしてセットアップし、独自の raw ソリッド ステート ハード ドライブを使用しました。ユーザーがログインしなくても、マシンが再起動された場合 (クラッシュ、Windows の更新など) にサーバーが自動的に再起動するようにしたかったのです。Server VM を実行するマシンに最初にログインすることなく、別のコンピューターからSamba共有 (laymens: ネットワーク経由で他のコンピューターと共有するものを含むフォルダー) にアクセスできたため、正常に機能したことがわかります。この 100% は、ユーザーのログイン後ではなく、システムの起動時に開始することを確認します。

于 2021-04-28T18:06:52.323 に答える
1

GUIにも簡単な手動オプションがあります:

Virtualbox 5.2 のスクリーンショット

(Virtualbox 5.2 から取得)

于 2018-11-07T20:19:22.197 に答える
0

Bruno Garett の回答に従って、私の経験では、vm.run.batファイルのテストが失敗し、読み取り専用エラーが発生しますが、VB スクリプトを実行すると正常に動作します。誰かの時間を節約するためだけに。

また、ヘッドレスをシャットダウンするには、別のバッチ スクリプトを使用できます (Sam F のソリューションは、Bruno のソリューションでは機能しません)。

cd "c:\Program Files\Oracle\VirtualBox\"
VBoxManage controlvm "Ubuntu Server" acpipowerbutton

2行目はここから取得しました。必要なオプションを使用できます。

于 2014-12-19T14:55:45.940 に答える