PROBLÈME
Je veux exécuter autostart " Machine virtuelle (VM) " sans " Oracle VirtualBox (VBOX) " " Interface graphique (GUI) " sur une machine DEV locale avec " Microsoft Windows (WIN) ".
Comment puis-je faire cela dans un processus d'arrière-plan en cours d'exécution?
SOLUTION
L'astuce consiste à exécuter VM sans interface graphique. Avec cela, vous pouvez aussi facilement exécuter VM sur un serveur WIN, comme un service.
0) Prérequis, il existe des ordinateurs virtuels, vous en avez déjà. Ci-dessous, indiquez son nom {nom_mv}.
1) Nous utilisons d’abord le fichier exécutable intégré "VBoxHeadless.exe".
créer un fichier
vm.run.bat
mettre du code
cd "c:\Program Files\Oracle\VirtualBox\"
VBoxHeadless.exe -s {vm_name} -v on
lancez et testez-le - WIN " interface de ligne de commande " appelé " environnement de commande " sera ouvert et VM s'exécutera en arrière-plan.
vm.run.bat
2) Nous utilisons ensuite " hôte de script basé sur Windows (WSCRIPT) } _" et le langage " script Microsoft Visual Basic (VBS) " et exécutons le fichier ci-dessus "vm.run.bat" avec .
créer un fichier
vm.run.vbs
mettre du code
Set WshShell = WScript.CreateObject("WScript.Shell")
obj = WshShell.Run("vm.run.bat", 0)
set WshShell = Nothing
lancez et testez - la CLI sera exécutée en arrière-plan.
wscript.exe vm.run.vbs
RÉFÉRENCES
Merci à iain
Vous pouvez utiliser VBoxManage pour démarrer un VM sans tête:
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "Your VM name" --type headless
J'ai utilisé quelque chose de similaire à la solution de Samuel qui fonctionne très bien.
Sur le bureau (ou n’importe quel dossier), cliquez avec le bouton droit de la souris et sélectionnez Nouveau-> Raccourci.
Dans la cible, tapez:
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm {uuid} --type headless
Dans le nom, tapez ce que vous voulez et cliquez sur Terminer.
Ensuite, pour arrêter la même machine virtuelle, créez un nouveau raccourci dont la cible est:
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm {uuid} poweroff
Double-cliquez dessus pour démarrer et arrêter le VM sans qu'aucune fenêtre ne reste ouverte.
À partir de VirtualBox 4.2, vous pouvez simplement maintenir Shift tout en lançant la machine virtuelle pour l'exécuter complètement en arrière-plan. Voir détails ici .
Une solution alternative: http://vboxvmservice.sourceforge.net/
Cela fonctionne parfaitement pour moi!
Si cela ne vous dérange pas d'utiliser l'application une fois manuellement, pour terminer avec le système d'exploitation exécuté en arrière-plan; voici les options:
Ouvrez Virtual Box . Cliquez sur votre système d'exploitation invité avec le bouton droit de la souris> Choisir: Démarrer Headless . Attendez que le système d'exploitation démarre.
Fermez ensuite l'application Virtual Box.
D'après mon expérience, après la réponse de Bruno Garett: le test du fichier vm.run.bat
échoue, donne une erreur en lecture seule mais fonctionne correctement avec le script VB. Juste pour sauver du temps à quiconque.
Également pour arrêter sans tête, vous pouvez utiliser un autre script batch (la solution de Sam F ne fonctionnera pas avec la solution de Bruno):
cd "c:\Program Files\Oracle\VirtualBox\"
VBoxManage controlvm "Ubuntu Server" acpipowerbutton
La deuxième ligne a été obtenue à partir de ici vous pouvez utiliser l’option de votre choix.
Vous n'avez pas besoin d'un VBScript supplémentaire. Vous pouvez faire une commande en arrière-plan directement à partir du fichier de commandes:
start "MyBackgroundVM" "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm {uuid} --type headless