Как я могу использовать скрипт для управления гостем VirtualBox?

См .: Запуск приложения в Windows с рабочего стола Ubuntu.

Мне было интересно, мог ли Таккат подробно рассказать о реальном исполнении, то есть о том, как это сделать, в файле сценария.

Это будет очень полезно. Заранее спасибо

Мой файл сценария InternetExplorerVM.sh выглядит следующим образом, исполнение выполнено

/path/to/InternetExplorerVM.sh "C:\Program Files\Internet Explorer\iexplore.exe"

#!/bin/bash

# start Internet Explorer inside of a Windows7 Ultimate VM
echo "Starting 'Internet Explorer' browser inside Windows7 virtual machine"
echo ""
sleep 1
echo "Please be patient"

VBoxManage startvm b307622e-6b5e-4e47-a427-84760cf2312b

sleep 15

echo ""
echo "Now starting 'Internet Explorer'"
##VBoxManage --nologo guestcontrol b307622e-6b5e-4e47-a427-84760cf2312b execute --image "$1" --username RailroadGuest --password bnsf1234

VBoxManage --nologo guestcontrol b307622e-6b5e-4e47-a427-84760cf2312b execute --image "C:\\Program/ Files\\Internet/ Explorer\\iexplore.exe" --username RailroadGuest --password bnsf1234 --wait-exit --wait-stdout

echo ""
echo "Saving the VM's state now"
VBoxManage controlvm b307622e-6b5e-4e47-a427-84760cf2312b savestate

sleep 2

#Check VM state
echo ""
echo "Check the VM state"
VBoxManage showvminfo b307622e-6b5e-4e47-a427-84760cf2312b | grep State

exit

Мои извинения за любые ошибки, я впервые публикуюсь на askubuntu. Заранее огромное спасибо , Это было очень полезно. Это необходимо для гостей BNSF, их эмулятор мэйнфрейма работает исключительно на Internet Explorer с поддержкой Java.

5
задан 13 April 2017 в 15:25

2 ответа

Он в основном говорит, что вы можете сделать это:

  1. Создать виртуальную машину, как виртуальную машину Windows.
  2. Войдите в виртуальную машину.
  3. Переключите виртуальную машину в «бесшовный» режим.
  4. Сохраните состояние виртуальной машины в главном окне Virtual Box.
  5. Создайте скрипт bash с помощью команд VBoxManage, чтобы вы могли сделать что-то вроде ./runinwindows "C:\\some\\path\\executable.exe"

Например:

#!/bin/bash
# Start the VM
VBoxManage startvm "<Name_of_VM>"

# Run the executable
VBoxManage --nologo guestcontrol "<Name_of_VM>" execute --image "$1" --username windowsuser --password password --wait-exit --wait-stdout

# Save the current machine state for the next time you run the script.
VBoxManage controlvm "Name_of_VM" savestate

Затем вы можете запустить Исполняемый файл Windows (в данном случае) в вашем терминале, но на самом деле он будет работать на виртуальной машине.

0
ответ дан 13 April 2017 в 15:25

Я написал скрипт для управления виртуальной машиной с помощью VBoxManage. Вы можете выполнять команды S используя скрипт следующим образом:

./vmcontrol.sh -m [VMName] [Your Command]

Сценарий:

#!/bin/bash
#Creation du script vmcontrol.sh

function execute
{    
    vmname=\$1;
    command=\$2;
    shift 2;
    VBoxManage --nologo guestcontrol \$vmname execute --image \$command --username root --password root --wait-exit --wait-stdout --wait-stderr -- \$@ 2>&1  ;      
}

param=\$1;
#Execution d'une commande
if [ \$param = "-e" ]
then
    command=\$2;
    shift 1;
    execute "Xubuntu" \$@ ;
#Execution d'une commande dans une vm donnée
elif [ \$param = "-m" ]
    then 
        vmname=\$2;
        command=\$3;
        shift 1;
        execute \$@
#Allumer une machine virtuelle donnée
elif [ \$param = "-s" ]
    then
        vmname=\$2;
        VBoxHeadless --startvm \$vmname;
elif [ \$param = "-c" ]
    then
        vmname=\$2;
        VBoxManage clonevm Xubuntu --mode machine --name \$vmname --basefolder /home/VMs --register ;
elif [ \$param = "-r" ]
    then
        vmname=\$2;
        VBoxManage unregistervm \$vmname  --delete ;
elif [ \$param = "-vbox" ]
    then
        startx virtualbox;
elif [ \$param = "-i" ]
     then
    vmname=\$2;
        if [ \$vmname = "vms" ]
            then
            VBoxManage list vms
        elif [ \$vmname = "runningvms" ]
            then
            VBoxManage list runningvms
        else 
            #Erreur 
            echo "error in commmande";
        fi
elif [ \$param = "-sv" ]
    then
        vmname=\$2;
        VBoxManage startvm \$vmname ;
elif [ \$param = "-p" ]
    then
    vmname=\$2;
    VBoxManage controlvm \$vmname  acpipowerbutton;
    else 
        #Erreur 
        echo "error in commmande";
fi
0
ответ дан 13 April 2017 в 15:25

Другие вопросы по тегам:

Похожие вопросы: