Usando aplicaciones Windows en GNU/Linux con VirtualBox

Podemos alojar una máquina virtual con Windows XP en una máquina física GNU/Linux utilizando VirtualBox, y ejecutar aplicaciones de la máquina virtual sin tener que estar “dentro” de ella, es decir, traerlas hasta nuestro escritorio “Linux”.

Una vez instalado el VirtualBox los pasos serían:

  • Instalar la maquina virtual.
  • Habilitar en VirtualBox la opcion “Server VRDP” (En la configuración de la máquina virtual / Pantalla Remota).
  • Bajar el programa runh, descomprimirlo y copiarlo a C:\WINDOWS\ o cualquier carpeta que esté en el PATH.
  • Iniciar la maquina con (asumiendo que la máquina virtual se llama “WinXP”):
$ VBoxHeadless --startvm "WinXP"

  • Y después, para ejecutar la aplicación notepad.exe por ejemplo:
$ rdesktop -A -N -s 'runh "cmd /c start /wait notepad.exe && shutdown -l"' IP_MAQUINA ó NOMBRE -u usuario -p contraseña

La explicación de los parámetros es la siguiente:

-A: crea una ventana X11 para cada apliación que se ejecute de Windows.

-N: para sincronizar el NumLock de la máquina virtual con la física.

-s: abre un shell necesario para lanzar las aplicaciones que le indica el comando rdesktop.

runh.exe lo utilizamos para ejecutar procesos en segundo plano y después concatenarlos, en este caso, iniciamos un shell (cmd) abrimos el Bloc de Notas (notepad.exe) y luego, cuando la aplicación se cierra hacemos un logout del usuario (shutdown -l).

Si quisieramos apagar la máquina virtual:

$ VBoxHeadless --stopvm "WinXP"

Limitaciones: sólo se puede abrir una aplicación a la vez ya que la sesión de Terminal Services para Windows XP es una sola. Para modificar esto y ampliar la cantidad de conexiones remotas escribiré un artículo, por ahora sólo escribí como incrementar el límite a 2 conexiones simultáneas en este post.

Share

Puedes seguir cualquier respuesta a esta entrada mediante el canal RSS 2.0. Puedes dejar un comentario o enviar un trackback desde tu propio sitio.

5 comentarios »

 
  • job dice:

    me interesa mucho este tema pero no eh podido lograr que funcione si pudieras ayudarme un poco mas, no se si puedas poner unas capturas de pantalla o algo asi.

  • 3steb@N! dice:

    hola,
    que es lo que te funcionó?
    decime en que paso quedaste trabado.

  • Elias Cisneros dice:

    Hola,

    Está muy bueno el artículo, me interesa mucho.

    Tengo una consulta, yo estoy utilizando rdesktop con seamlessrdp para traerme solamente la aplicación requerida.

    Algo así como:

    rdesktop xxx.xxx.xxx.xxx -A -s ‘C:\seamlessrdp\seamlessrdpshell64.exe C:\WINDOWS\notepad.exe’ . Esto lo hace muy bien, pero…

    Se me presenta el problema de cerrar la sesión, sin embargo cuando utilizo la herramienta runh, en el script que colocas la aplicación recibe como argumento solo la aplicación, en el ejemplo sale notepad.exe.

    ¿Como haría para que la línea contenga los dos ejecutables?
    Probé con lo siguiente y no funcionó:

    rdesktop xxx.xxx.xxx.xxx -N -A -s ‘runh “cmd /c start /wait C:\seamlessrdp\seamlessrdpshell64.exe C:\WINDOWS\notepad.exe && shutdown -l”‘

    Por favor ayuda.

    Muchas gracias.

  • 3steb@N! dice:

    Mirá creo que eso no vas a poder porque al ejecutar el script, lo que se hace es usar una sesión de RDP, si usas XP sólo tiene una para Terminal Server.

    Lo que podés probar es usar algún soft como el WinConnect Server XP (de Thinsoft) o parchear la termsvr.dll. Hay mucho en internet sobre como hacer esto. De esa manera, va a levantar cada aplicación en usa sesión diferente, esto debería funcionar.
    Comentanos tu experiencia!

 

Deja un comentario

XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>