Los invitados de Windows tienen algunas limitaciones, pero para ejecutar una aplicación de invitado en modo integrado desde un script que se puede poner en un lanzador, probamos el siguiente procedimiento:
- Inicie VirtualBox Manager
- Inicie sesión en Windows con su usuario y contraseña
- Cambiar a modo continuo Host+L
- En modo continuo, guarde el estado de la máquina
Ahora podemos obtener un control total de la línea de comandos sobre la máquina virtual con los siguientes comandos:
Inicie la máquina virtual desde el estado de guardado sin interrupciones
VBoxManage startvm "<Name_of_VM>"
o (para la interfaz Qt)
VirtualBox --startvm "<Name_of_VM>"
Ejecute una aplicación en la VM
VBoxManage --nologo guestcontrol "<Name_of_VM>" run --exe "C:\\full\\path\\to\\program.exe" --username windowsuser --password password --wait-stdout
Terminar VM en estado de guardar
VBoxManage controlvm "Name_of_VM" savestate
Póngalos en una secuencia de comandos para disfrutar de ventanas de aplicaciones de Windows integradas en su escritorio Ubuntu.
En caso de que haya configurado un inicio de sesión de Windows sin contraseña, esto no funcionará. Consulte el Manual de Virtual Box para conocer las limitaciones y cómo configurar Windows para que funcione.
Además, para usar cuentas sin o con una contraseña vacía, se debe cambiar la política de grupo del invitado. Para hacerlo, abra el editor de políticas de grupo en la línea de comando escribiendo gpedit.msc , abra la clave Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options
y cambie el valor de Accounts: Limit local account use of blank passwords to console logon only
a Disabled.
En los sistemas operativos sin el Editor de directivas de grupo (gpedit.msc), como las ediciones Home de Windows, crear una DWORD en la clave de registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\limitblankpassworduse
y establecerla en cero logrará el mismo efecto, según esta respuesta .
Esto es más una pista que una respuesta, pero es demasiado grande para un comentario.
Probablemente deberías mirar esto . Según los documentos, este comando se ejecuta desde el sistema operativo host (supongo que un host Ubuntu y un invitado Windows):
Debería abrir regedit en Windows (el invitado), pero nunca he podido hacerlo funcionar.
También puedes usar
para verificar si una VM se está ejecutando o no.
fuente
VBoxManage guestcontrol Windows\ XP exec --image c:\\program\ files\\quicken\\qw.exe --username XXXXX --password XXXXX
donde XXXXX era mi nombre de usuario y contraseña.Eliminé la idea original cuando me di cuenta de que no funcionaría porque Linux no podrá acceder a la partición de Windows en una VM si aún no se está ejecutando. Puede haber una forma más compleja de hacerlo, pero no sé si realmente vale la pena.
Es posible tener un directorio compartido común, y un script en Windows siempre verificará este directorio para ver si está vacío o no. De lo contrario, ejecutaría los scripts en el directorio, que el sistema Ubuntu colocaría allí antes de ejecutar la VM.
Podría tener un segundo script que elimine el primero para que no se ejecute la próxima vez.
fuente
Quería lo mismo y terminé resolviéndolo sin usar guestcontrol. En mi host MacOS X tengo una carpeta (llamada Windows) que mi cliente vbox que ejecuta un Win7 ha asignado como Z :. Utilizo archivos ficticios para comunicarme entre el host y mis clientes de esta manera:
En el host de Mac: creé un script de shell completo con un icono para cada aplicación de Windows que quería iniciar en el cliente Win. Lo que básicamente hacen es asegurarse de que VirtualBox no se haya iniciado antes y luego crea un archivo "iniciar esta aplicación en particular" en la carpeta compartida que Windows puede leer después del inicio. Ejemplo de cómo se ve este script:
Luego, en el cliente de Windows, tengo un script coincidente (archivo BAT) en la carpeta de inicio que se ve así:
De esta manera, cada vez que quiero agregar un nuevo icono de inicio de cliente en mi Mac, copio el script de shell, invento un nuevo archivo ficticio y agrego las líneas de inicio coincidentes en el script BAT en el cliente. Funciona muy bien y creo que está en línea con la idea de Martys en la publicación anterior.
fuente
pgrep
lugar deps | grep
. Este último corre el riesgo de igualarse.MacMini:~ urban$ ps ax | grep -v grep | grep 'Windows 7' 10874 ?? R 4:38.49 /Applications/VirtualBox.app/Contents/Resources/VirtualBoxVM.app/Contents/MacOS/VirtualBoxVM --comment Windows 7 --startvm 24507412-789d-42ed-9c79-b4faf0c2d130 --no-startvm-errormsgbox
pero ¿tal vez tiene una sugerencia sobre esto?