Ejecutar aplicaciones Windows en ventanas independientes dentro de Linux
Trabajar con una maquina virtual reúne muchas ventajas, pero también tiene algunos inconvenientes.
Uno de ellos es que para trabajar con un sistema operativo con un sistema de ventanas nos vemos obligados a conmutar entre el espacio de trabajo nativo y el virtualizado, y aunque es un proceso ágil y sencillo, si tenemos que efectuarlo a menudo se vuelve algo tedioso.
Aunque en Linux, por ejemplo, podemos tener el S.O. virtual a pantalla completa en una de las áreas de trabajo y simplemente conmutando entre ellas cambiaremos de S.O. de forma transparente.
Pero hay otra forma aún más cómoda de poder interactuar con el sistema operativo virtual y es conseguir que las ventanas de este se integren en el sistema operativo anfitrión como si fueran ventanas nativas del mismo. El que conozca Parallels Coherence para Mac OS X entiende de lo que hablo. Es decir que podemos ejecutar por ejemplo una ventana de Windows en Linux como si fuera una aplicación nativa del mismo, aunque en la realidad se este ejecutando en la maquina virtual.
Tendríamos algo como lo de esta imagen
Se puede conseguir de una forma realmente sencilla y rápida y voy a explicar como hacerlo empleando Ubuntu 7.04 como S.O. anfitrión, VMware Server como programa de virtualización y Windows XP Professional como sistema operativo virtualizado. Aunque se puede emplear cualquier otra distribución de Linux, simplemente se necesita el paquete rdesktop instalado (de serie en Ubuntu). También se puede emplear Quemu para hacer lo mismo que con VMware. En el caso de Windows es necesario que incorporen el servicio Terminal Services, algo que incorporan todas las versiones profesionales, como Windows 2000, XP Professional y las versiones profesionales de Vista (Bussines, Enterprise y Ultimate) y que no incorporan las versiones Home.
Para el ejemplo empleo VMware Server, aunque se podria emplear perfectamente el Player para el mismo cometido.
Lo primero que necesitamos es tener una maquina virtual creada con Windows XP Professional. Ahora necesitamos arrancar esta maquina para realizar las modificaciones necesarias para poder ejecutar los programas en ventanas independientes.
Modificaciones a realizar:
- Habilitar el control remoto del escritorio. Esto es necesario porque lo que hace en realidad este método es iniciar sesión en el Windows virtualizado a través del protocolo RDP (Remote Desktop Protocol) de Terminal Service. Para hacer esto nos vamos al Menu Inicio, al icono de Mi PC y con el botón derecho del ratón seleccionamos Propiedades. Nos vamos a la pestaña Remoto y activamos la casilla Permitir que otros usuarios se conecten de manera remota a este equipo.

- Automatizar el arranque de los Terminal Services. Esto es necesario para que cada vez que queramos emplear este método no nos veamos obligados a iniciar sesión para que se inicie este servicio y luego cerrarla e iniciar las aplicaciones en ventanas independientes. Si automatizamos el inicio de ester servicio podríamos llegar a crear un script que iniciara la maquina virtual de forma automática y luego las aplicaciones de Windows. Para cambiar el inicio de manual a automático de este servicio nos vamos al Menu Inicio, y con el botón derecho del ratón sobre el icono de Mi PC, elegimos Administrar. Ahí desplegamos la lista Servicios y Aplicaciones y seleccionamos Servicios. Nos movemos por la lista y buscamos Terminal Services y hacemos doble click de ratón sobre el. En la lista desplegable donde dice Tipo de Inicio cambiamos Manual por Automático.


- Descargar el programa SeamlessRDP. Este programa es necesario porque los Terminal Services originales de Microsoft son bastante sencillos y limitados y no incorporan esta característica (ventanas independientes del escritorio) como si lo hacen otras aplicaciones más avanzadas como Citrix o Cendio. El SeamlessRDP lo podemos descargar de la pagina de Cendio, aquí .Luego lo descargamos en C:\seamlessrdp (aunque podemos elegir otra ruta con total libertad).
- Desactivar el escritorio para el usuario que empleemos. Esto es necesario para que no tengamos el escritorio de Windows de fondo sobre el de Ubuntu. Para ello iniciamos sesión en Windows con el usuario que vayamos a emplear (si tenemos más de uno y no hemos iniciado ya la sesión para ese usuario) y luego editamos el registro. Vamos al Menu Inicio, pulsamos sobre Ejecutar, escribimos regedit y le damos a Aceptar. Ahí iremos a la siguiente rama HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer y allí, pulsando con el botón derecho sobre la parte derecha seleccionamos Nuevo y Valor DWORD. Al nuevo Valor DWORD le llamaremos NoDesktop y le daremos un valor igual a 1.

- Comprobar opciones de inicio de sesion. Esto es necesario para que funcione bien el modo Seamless. En Menu Inicio, Panel de Control, Cuentas de Usuario pulsar sobre Cambiar la forma en la que los usuarios inician y cierran sesión. Nos aparecera una ventana con dos opciones: Usar la Pantalla de bienvenida y Usar Cambio rápido de usuario. Debemos activar ambas opciones.

- Activar la contraseña para el usuario. Para poder emplear los Terminales Services es necesario que iniciemos sesión con una contraseña, debido a la función para la que fueron diseñados. Entonces si nuestro usuario no tiene actualmente una contraseña, necesitaremos crear una. Iremos al Menu Inicio, Panel de Control, Cuentas de Usuario y ahí seleccionando el usuario que vamos a emplear elegimos Crear una contraseña.
- Anotar la IP de la maquina virtual. Es la forma de indicarle al programa rdesktop cual es la maquina virtual (host) a la que conectarse. Para averiguar y apuntar la misma (da igual que la maquina virtual funcione con NAT o Bridged o Host Only) nos vamos a Menu Inicio, Ejecutar, escribimos cmd y le damos a Aceptar. Estaremos ahora en la linea de comandos (que emula al MS-DOS) de Windows, ahi escribimos ipconfig y le damos a Enter. Ahí apuntamos el número en formato aaa.bbb.ccc.ddd que aparece como Dirección IP

Estos serian los cambios necesarios, ahora podríamos cerrar la sesión de Windows de la maquina virtual y la consola de vmware nos mostraría algo así

Ahora podemos cerrar tranquilamente la consola de VMware Server (la maquina seguiría corriendo en segundo plano).
Ahora en una venta deTerminal escribiríamos el siguiente comando
rdesktop -A -s "c:\seamlessrdp\seamlessrdpshell.exe c:\windows\explorer.exe" IP_maquina_virtual -u usuario -p contraseña
donde
- rdesktop, es la aplicación para el control remoto de la sesión de Windows
- -A, es la opción que activa la opción SeamlessRDP, ventanas independientes del escritorio
- -s, es la opción que le indica que interprete de comandos (shell) vamos a emplear
- "c:\seamlessrdp\seamlessrdpshell.exe c:\windows\explorer.exe", es la cadena que usamos como parámetro de -s, para decirle que vamos a ejecutar la aplicación explorer.exe a través del shell seamlessrdpshell.exe que es el que nos va a permitir emplear las ventanas independientes del escritorio.
- IP_maquina_virtual, es la dirección IP de la maquina virtual que anotamos anteriormente
- -u usuario, es el nombre de usuario de Windows que vamos a emplear
- -p contraseña, es la contraseña para ese usuario.
El resultado de este método se puede ver en este vídeo
Aqui lo que se ve es que se ha lanzado la ejecución del explorer, pero sin el escritorio, con lo que tenemos acceso al Menu Inicio y a todas las aplicaciones y opciones. Pero también es posible lanzar aplicaciones independientes, sin la barra de inicio y el menú, lo único que hay que hacer es sustituir la ruta c:\windows\explorer.exe por la que corresponda con la aplicación que deseemos ejecutar.
También podríamos crear un script que arrancara la maquina virtual y arrancara la aplicación. La maquina virtual se podría apagar con otro script o simplemente se cerraría al apagar el equipo, pero hay que tener en cuenta que esta consume recursos, no muchos si no está haciendo nada, pero consume.
Actualización 18/07/2007 21:18: Gracias a la contribución de Aurelio en los comentarios, he podido ampliar el metodo para evitar que se de un caso como el suyo.
Fuentes: VentureCake, Ubuntu Community Docs
- 28469 lecturas
- Versión para impresión
Ventana del escritorio
Ahora mismo no estoy en el
Ahora mismo no estoy en el ordenador donde tengo instalado el vmware y la maquina virtual de Windows XP para hacer las pertinentes pruebas y corroborartelo, pero creo que sé a que puede ser debido lo que te está pasando.
Revisa en las opciones de Usuarios del Panel de Control, que tengas activadas las siguientes opciones:
- Emplear la pantalla de Bienvenida (o algo parecido, hablo de memoria, no tengo aqui un windows a mano)
- Cambio rapido de usuarios
Estas opciones tienes que tenerlas activadas, si no es asi, activalas.
Pruebalo y dime algo, en cuanto tenga oportunidad lo probaré yo mismo.
Saludos
Confirmado
Efectivamente, ese era el problema. Ya delante del equipo donde tengo el vmware, he conseguido reproducir el problema que tú tenias y se debe a eso, para solucionarlo has de hacer lo siguiente:
Ir a Menu Inicio, Panel de Control, Cuentas de usuario y ahí pulsar en Cambiar la forma en la que los usuarios inician y cierran sesión
Tendrás una pantalla como esta y tendrás que tener las dos casillas activadas.
Saludos
problemas
No acabo de entenderte
No acabo de entenderte bien, cuando hablas de terminal te refieres a la terminal de comandos de Kubuntu o a la ventana de la sesión de Windows? repitemelo con más detalle, a ver si entiendo lo que me intentas explicar.
Para solucionar lo de la resolución instalale las vmware tools, esto lo haces iniciando sesión en la maquina virtual y desde el menu del VMware Server ir a VM => Install VMware Tools y seguir las instrucciones del instalador en el Windows.
Saludos
Error de conexion
Estuve estudiando la guia que has dejado y me parece excelente, muy detallada y prolija.
El tema es que al intentar efectuar la conexion desde el terminal me da error, textualmente dice:
ERROR: connect: Conexión rechazada.
La linea la escribo tal lo indicas, poniendo la IP correcta de acuerdo a lo que indica el ipconfig del xp. tambien verifico que el nombre de usuario este bien escrito, lo mimso que la contraseña.
EN la ventana de usuario de xp active los dos tildes tanto de inicio como cierre de sesion. Tambien aplique el cambio en el registro, aunque supongo que eso no tiene nada que ver con la conexion en si.
Si se te ocurre por donde puedo buscar el error te agradezco.
De todos modos un abrazo y muchas gracias por tu instructivo.
Saludos
Sergio
Si, eso te ocurre porque
Si, eso te ocurre porque aún no estan arrancados los Terminal Services.
Si al Windows le lleva un tiempo arrancar en la máquina virtual, es posible que éstes intentando acceder y el servicio aún no esté levantado.
Para ello repite el comando varias veces (ya sabes no hace falta volverlo a escribir, con la tecla flecha arriba nos vuelve a aparecer el comando y solo tenemos que pulsar enter) y verás como a la 2ª o 3ª vez te entra.
Si después de varias veces no consigues que establezca la conexión remota con el windows, comprueba la configuración correcta del servicio Terminal Services y comprueba que este configurado como Tipo de Inicio -> Automático. Si no lo hicieras así, tendrías que iniciar sesión cada vez en el Windows dentro de la consola del VMware y luego salir para poder conectar con el a través del rdesktop.
De nada, el conocimiento es de todos, compartirlo no es más que agradecer la labor de otros muchos que lo han hecho antes.
Un abrazo y un saludo
Problema solucionado, sin
Problema solucionado, sin darme cuenta habia activado el snapshot y aparentemente los cambios no quedaban registrados en el disco virtual al cerrar la aplicacion.
Todo funciona tal como lo indicas y la configuracion de la pantalla es correcta. Lo unico que termina sin cerrarme es la imposibilidad de conectar una red con el Ubuntu, ni siquiera con otra red windows que tambien esta instalada y a la que el Ubuntu se conecta sin problemas. No se muy bien porque pues Internet si tiene a traves del Ubuntu (por la 2da opcion, creo que Nat se llama), el bridge no lo reconocio. En otro foro lei que la version anterior del Ubuntu (antes del 7.04) si lo reconocia, pero a partir de esta solo se conecta por Nat. Supongo que aca debe estar el problema, ya que no tiene una IP propia sino que se la da el Ubuntu. ¿vos pudiste resolverlo de algun modo?
Con el VMware Server si no
Con el VMware Server si no me equivoco, debería poder hacerse sin problemas esa red entre servidor y anfitrión con la opción Host-only. Con el VMware Workstation si que es muy sencillo crear esa red, incluso entre distintas máquinas virtuales. El VMware Server es una versión con menos opciones que la Workstation, además que la Workstation no es gratuita.
La verdad, nunca he establecido una red entre mis VMs y mi sistema operativo anfitrión, siempre he utilizado el FTP para mover archivos entre ellas. Lo hago por seguridad, empleo las VMs para correr servidores o hacer pruebas y prefiero tenerlas aisladas de mi sistema principal.
Saludos
no me ejecuta ningun programa
Hola, lo primero, darte las gracias por esta estupenda guia, mucho mas facil de seguir los how-to de las guias y foros de ubuntu (por cierto, te sobra una e en la linea con el comando completo de rdesktop, esta escrito redesktop) y me estoy volviendo loco porque cada vez que intento ejecutar cualquier programa (explorer.exe, calc.exe, etc etc) me dice que no puede ejecutar el programa. El mensaje de error es "Unable to Launch the requested application" y la verdad, estoy "ligeramente" desesperado y perdido...
Alguna sugerencia, idea o recomendacion?
Gracias!!
Gracias por el aviso, ya he
Gracias por el aviso, ya he corregido el error de sintaxis del comando.
He intentado reproducir tu error y lo he conseguido, me ocurre cuando escribo mal la ruta de la aplicación en Windows.
Es decir en el comando
rdesktop -A -s "c:\seamlessrdp\seamlessrdpshell.exe c:\windows\explorer.exe" IP_maquina_virtual -u usuario -p contraseña
La parte que está en negrita. Si esa ruta está equivocada, te da justamente ese error.
Revisa que la ruta a las aplicaciones que quieres ejecutar es la misma que escribes en la línea de comandos.
Saludos
La ruta fue lo primero que
Me he fijado, tambien me da
Me he fijado, tambien me da este error en la consola:
/dev/dsp: Dispositivo ó recurso ocupado
Al mensaje de error de
Al mensaje de error de /dev/dsp no le hagas ni caso, simplemente es que no te deja acceder al dispositivo de audio. Ese no es el problema.
Por otro lado, estás empleando algún tipo de firewall en el XP de la maquina virtual?
Es este el error que te
Es este el error que te da?
Si es asi, has comprobado que la ruta que aparece en la ventana de error es la misma que has introducido?
Efectivamente, ese es el
Efectivamente, ese es el error, pero lel path esta comprobada y requetecomprobada que es la correcta
en la maquina virtual tengo activado el FW de XP y un antivirus, probare con el FW.
Me respondo a mi mismo:
Me respondo a mi mismo: Habiendo deshabilitado el FW, y cambiado la C:\ de la ruta por c:\, me ejecuta el explorer, calc, etc.
Ahora solo me queda averiguar porque , teniendo la c:\ puesta, no me ejecuta el programa que realmente me interesa. No se si sera por el tema de las mayusculas en la ruta, o porque tiene un acento en "Menú de Inicio"... seguire investigando
A ver, si intentas ejecutar
A ver, si intentas ejecutar un programa, la ruta del Menu de Inicio probablemente te llevará al acceso directo, pero no al archivo ejecutable. Por eso no te funciona.
Tienes que averiguar la ruta real del programa. Es decir, te vas al acceso directo en el Menú de Inicio y con el botón derecho pulsas sobre Propiedades. Allí eliges la pestaña Acceso Directo y la ruta real de la aplicación es la que te aparece en Destino.
Lo se, lo se.. he probado
Lo se, lo se.. he probado creando un acceso directo, con el path completo al ejecutable, el path al menu de inicio, el path a la orden del ejecutable...
no se si el problema es que intento ejecutar una aplicacion de CRM que es un front end para conectarse a unos servidores via web. El lunes seguire investigando desde el trabajo.
Y gracias por toda la ayuda!!!
Virtualbox
Tambien se puede correr con virtualbox, mismo sistema, solo que, para correr en "background" el Xp necesite iniciarlo en una xterminal nueva.
Disculpen si parece deshubicado, simplemente supe de varios usuarios de virtualbox que intentaron hacerlo, pero solo encontraron "guias" para vmware.
Muchas gracias.
Slds....
Yo lo he hecho con
Yo lo he hecho con VirtualBox, pero lo mas que he llegado a lograr ha sido a tener un escritorio de XP sin bordes, pero no he logrado que aparezcan solo las ventanas de las aplicaciones, si no que aparecia todo el escritorio.
Si supieras de una guia o alguna indicacion para hacerlo con virtual box, te estaria agradecido
La última versión de
La última versión de VirtuaBox, la 1.5.0, ya soporta las ventanas Seamless de forma nativa.
En esta entrada de Entre Tuxes y Pepinos tienes más información.
Lo volvere a intentar con
Genial
Muy bueno el tutorial!!!. Me ha funcionado todo a la primera :-). Ya estaba usando VMWare desde hacía tiempo para ejecutar alguna aplicación de la que no he encontrado sustituto en linux, pero no tenía integradas las ventanas. La única pega es que a veces se quedan un poco pilladas, pero en general va muy bien.
Saludos, Iván.
No lo consigo
Hola!
Primero de todo dejame felicitarte por tu blog y en especial por este artículo, la verdad es que si realmente consigo que me funcione me sera de gran utilidad.
He seguido los pasos uno a uno, pero no consigo hacerlo funcionar.En el último momento cuando ya estoy en la terminal de linux y le doy la orden de conexion este me devuelve:
ERROR: recv: Connection reset by peer
He provado con todas las formas de conexion que ofrece vmware, pero en el mismo blog dices que es indiferente y ahora vuelvo estar con Bridged.
Si te sirve, estoy utilizando como sistema nativo, Ubuntu Feisty y dentro de vmware server el windows xp profesional sp2. tengo desactivado el firewall y la ip esta introducida manualmente en la targeta de red.
Que me falta??
Muchas gracias por cualquier aporte!
Bueno, este es uno de esos
Bueno, este es uno de esos errores que dan mucha guerra...
En principio podría seria un error de licencia de Terminal Server, aunque esto seria muy raro en XP Professional, ya que incorpora una licencia para una conexión por maquina. De todas maneras prueba a ver si es de ello, para eso intercala entre la opción -A y la opción -s, la opción -n prueba donde prueba es el nombre de un usuario de prueba de TS que tendría una licencia de 90 días, podrías cambiar ese usuario por otro distinto, por ejemplo, prueba2 u otro cualquiera.
También podría ser una conexión mal cerrada o colgada, prueba a reiniciar la maquina virtual o con otro usuario.
Por cierto, si no tienes la última versión del vmware server, la 1.0.4, no pierdes nada actualizandola, nunca se sabe, además corrige unos cuantos fallos de seguridad.
Saludos
perfecto!
eres un crack! tenia la version 1.0.3 de vmware y he probado con la 1.0.4 y perfecto!
Aprovecho por preguntarte otra cosa. Al final de este articulo hablas de la posibilidad de abrir un programa en concreto sin necesidad de abrir la barra de inicio. He sustituido c:\windows\explorer.exe por c:\Archivos de programa\CCleaner\CCleaner.exe (por poner un ejemplo) y este no se abre.
Tengo que cambiar algo mas? en realidad lo quiero para otro programa pero supongo que sera el mismo procedimiento, no?
Muchisimas gracias!
Debería funcionar así,
Debería funcionar así, sin problemas.
Eso si, ten en cuenta una cosa, el programa tardará tanto en abrirse como lo haría en Windows, solo que aquí no tienes una referencia como una flecha de ratón con un reloj. Te lo digo por si abres algún programa algo pesado que tarde en cargar.
Saludos
Funciona
Después de reiniciar ha funcionado. Quizás era problema de session de usuario.
Como todo, ahora a trabajar con ello y a ver si funciona bien que es donde se detectan los errores, o no!
Gracias por compartirlo!
Saludos!
De nada, me alegro de que
De nada, me alegro de que te haya sido útil. Y gracias a ti por reportarlo.
Saludos
Cerrar sesion
Hola!
Como ya te dije me funciona perfecto, pero me gustaria saber si se pueden implementar algunas opciones para depurarlo.
Cuando ejecutamos algun programa con rdesktop y este lo cierras sigue corriendo en la terminal, si a la vez cierras esa terminal la sesion de windows sigue abierta y por lo tanto si vuelves a abrir el programa este no responde.
Lo que hago es reiniciar la maquina virtual windows y este me pregunta por el usuario activo.
Se podria dar la orden desde una terminal a rdesktop que cerrara esa sesion? como? no encuentro mucha info al respeto.
Muchas gracias por las molestias!
Si, claro que se puede.
Si, claro que se puede. Aunque eso que te sucede tampoco ocurre con todas las aplicaciones.
Pero el quid de la cuestión no está en el rdesktop, está en Windows, que es a quien le debes decir que cierre la sesión, ya que el rdesktop da por terminada la conexión al cerrar la aplicación, pero no cierra la sesión.
Para ello tienes dos utilidades en linea de comandos que nos pueden servir para este caso, según quieras hacer una u otra cosa. Las utilidades son:
Entonces con la primera utilidad, tsdiscon, podriamos hacer lo que buscas, que es que al ejecutar una aplicación independiente en modo seamless podamos cerrar la sesión al mismo tiempo que se cierra la aplicación. Este comando admite una serie de parámetros como son el session id (el identificador de la sesión), el nombre de la sesión y el nombre del servidor. En nuestro caso solo nos interesa el session id, que será suficiente para identificar la sesión que queremos cerrar. En este parámetro el numero 0 siempre será el identificador de la consola principal, que es la local, la cual no empleamos con el terminal server. Para el resto de sesiones el identificador es un contador autonumérico que comienza en 1 y sigue en 2, 3, 4, ...n para las sucesivas n consolas. Como en el caso del Windows XP solo se nos permite una consola remota al mismo tiempo y además es la primera que iniciamos con el rdesktop, este identificador para nosotros será 1.
Ahora lo primero que podriamos pensar es bien, ejecutamos este comando con el rdesktop y asunto solucionado. Pero no, porque el problema es de esta forma cerraríamos la sesión que abrimos con la aplicación, pero estaríamos abriendo una nueva para el tsdiscon.exe que quedaría abierta y no solucionamos nada, de hecho veríamos que la aplicación se abre de nuevo. Hay una forma de hacerlo que además es más eficaz y "elegante" por ser desantedida.
La forma de hacerlo es emplear los archivos de proceso por lotes de Windows (.bat). Porque los archivos por lotes funcionan de forma predeterminada de manera que un paso se ejecuta cuando acaba el anterior. Voy a explicarlo con un ejemplo. Imaginemos que queremos arrancar la calculadora en mode seamless y que cuando la cerremos se cierre también la sesión. Para ello iniciamos sesión en la maquina virtual de Windows y creamos un archivo .bat en el disco duro, por ejemplo el archivo C:\calculadora.bat. En este archivo añadiríamos las siguientes lineas:
@echo off
c:\windows\system32\calc.exe
c:\windows\system32\tsdiscon.exe 1
La primera linea lo que nos hace es que nos oculta los procesos que se van ejecutando en la linea de comando, la segunda nos abre la calculadora y la tercera, que se ejecuta después de cerrar la calculadora, nos ejecuta el programa tdiscon.exe que nos cerrará la sesión 1 (la que habíamos abierto).
Ahora para hacer esto con el rdesktop lo haríamos de la siguiente manera:
rdesktop -A -s "c:\seamlessrdp\seamlessrdpshell.exe c:\calculadora.bat" IP_maquina_virtual -u usuario -p contraseña
Y ya nos funcionaria como tu quieres, cierras la calculadora y se cierra la sesión. Pues eso mismo pero cambiando la calculadora por otra aplicación, es lo que necesitas.
Ahora, si te interesa apagar la maquina y no tener que abrir la consola de vmware server para apagar el windows, podrías por ejemplo cerrar la maquina virtual desde una linea de comandos con los parámetros del vmware, pero no seria un cierro limpio del windows. Para eso lo mejor es que puedas apagar correctamente el windows desde un comando de consola, y ahi es donde nos encaja el tsshutdn.exe. Y aqui si que podemos llamarlo directamente desde el rdesktop, ya que no importa que nos abra una sesión nueva y nos deje la otra colgada, porque antes de apagar el windows, cerrará todas las sesiones. Para ello haríamos lo siguiente:
rdesktop -s "tsshutdn 0 /delay:0" IP_maquina_virtual -u usuario -p contraseña
Donde el primer 0 seria el numero de segundos desde que se da la orden hasta que queremos que se apague la maquina y /delay:0 el tiempo en segundos en que se apagaría la maquina desde que se avisa a cada usuario de una sesión remota. Al poner los dos valores a 0, el windows de la maquina virtual se apaga inmediatamente. En este caso he quitado el parametro -A del rdesktop para que el proceso sea visualmente más limpio.
Ahora con todo esto podriamos preparar un script para linux que desde un acceso directo nos arrancara la aplicación y que cuando la cerráramos nos cerrara la sesión. O un acceso directo que nos apagara correctamente el windows y nos parara la maquina virtual. O incluso un script que nos arrancara la maquina virtual del windows y después la aplicación directamente. Vamos, que se puede automatizar todo casi hasta donde queramos.
Saludos, de nada, no es una molestia, esto servirá para más gente con la misma duda.
Increible! A ver si hoy
Increible!
A ver si hoy lo puedo probar, seguro que funciona!
Me aprovecho un poco mas, pero como bien dices esto tambien sirve para la gente que llegue a tu blog.
Hay manera de abrir dos programas de windows a la vez?
Por ejemplo, tener un enlaze en ubuntu a la calculadora y otro al notepad. Que pudiras abrir uno y despues el otro, pero sin cerrar el anterior, entonces manteniendo esa sesion de ese usuario.
Ah! ahora que me acuerdo, me di cuenta que el teclado no está igual configurado.. Esto imagino que es de opcion de rdesktop, como lo puedo configurar?
Muchisimas gracias otra vez!
A ver, si puedes abrir dos
A ver, si puedes abrir dos programas a la vez, pero no de la forma que me dices. Windows XP solo te permite una conexión simultanea de terminal server, por lo que si intentas abrir otro programa en modo seamless con rdesktop, no te funcionara.
Ahora, lo que si puedes hacer es usar los ficheros .bat de Windows para abrir cuantos programas quieras. Por ejemplo, un fichero .bat para abrir la calculador, el bloc de notas y el paint, seria así:
@echo off
start "" "C:\Windows\System32\calc.exe"
start "" "C:\Windows\System32\notepad.exe"
C:\Windows\System32\mspaint.exe"
C:\Windows\System32\tsdiscon.exe 1
Eso si, ten presente que la ultima aplicación antes de ejecutar el tsdiscon.exe no debe iniciarse con start "" "aplicacion.exe" para que la sesion solo se cierre cuando cierres la ultima aplicacion que quede abierta.
Aunque si vas a andar conmutando entre muchos programas de forma continua, casi es mejor que arranques el explorer.exe, aunque te aparezca la barra de inicio en la parte de abajo de la pantalla.
En cuanto a lo del teclado, pues a mi me lo escoge perfectamente, pero si te da problemas es fácil de solucionar, simplemente tienes que emplear el parámetro -k del rdesktop. En este caso, con un teclado español, la cosa quedaría así:
rdesktop -A -k es -s "c:\seamlessrdp\seamlessrdpshell.exe c:\programa.bat" IP_maquina_virtual -u usuario -p contraseña
De nada, si sigues teniendo dudas, no dudes en preguntar.
Saludos
Hola. Primero decir que
Hola.
Primero decir que muy bueno el articulo (y muy currado que le contestas a todo el mundo sus dudas, con paciencia infinita en algunos casos).
Yo lo que queria preguntar es, si por ejemplo usando un PC de terminales, por ejemplo un LTSP con por ejemplo 3 usuarios usando el Linux remoto, si en ese el usuario 1 anda usando el programa (la calculadora) y otro le da por lanzar la aplicacion notepad. ¿El primero deja de ver la calculadora? Yo me imagino que si, pues el rdesktop va por acceso remoto no por equipo concectado.
(estaria muy bien si el rdesktop estuviera en 2º plano y tu le lanzases apertura de programas en tu x, sin consumir sesion ¿no?)
Otra cosa, no sé si era este mismo programa u otro, pero ¿sabes si hay otro modo de que lo que se ve en un windows se puede ver y controlar desde un linux, solo el programa no la sesion completa?
Gracias
El pesao otra vez! Muchas
El pesao otra vez!
Muchas gracias por contestar tan rapido en serio!. Mira he probado lo de ejecutar el .bat y no me va. Siguiendo tus instrucciones:
rdesktop -A -k es -s "c:\seamlessrdp\seamlessrdpshell.exe c:\programa.bat" IP_maquina_virtual -u usuario -p contraseña
He probado de ejecutar dentro del windows ese bat y efectivamente, abre la aplicacion en cuestion y al cerrar cierra sesion, pero desde rdesktop me da siempre este error:
ERROR: connect: Connection refused
No es problema de ip ni usuario ni nada de esto, ya que ejecutando explorer.exe funciona, y el programa directamente tambien, es al llamar al bat que no quiere.
Que puede ser? El bat esta en la raiz, en la C tal como esplicas..
Saludos!
Que te rechaze la conexion
Que te rechaze la conexion es en principio porque el servicio terminal service no esta iniciado. Comprueba que este iniciado y prueba a reiniciar la maquina virtual.
Lo que es raro es que te ocurra solo con el .bat. He probado varias cosas y no he conseguido reproducir ese error en mi maquina para que me suceda solo con el .bat
Saludos
Ya he probado varias veces
Ya he probado varias veces de reiniciar la maquina virtual y la sesion.. pero nada. Ya te digo que haciendo lo del tutorial: ejecutar una aplicacion en concreto como puede ser el explorer.exe este funciona sin problemas. Es al ejecutar el .bat que no va.
Seguire probando a ver..
Nada, imposible, no he
Nada, imposible, no he conseguido reproducir ese error por muchos cambios que haya probado.
Una pregunta, puede que hayas efectuado o restaurado algun snapshot?
Tienes el inicio del servicio terminal service en automatico? Es como si algo que haces parara ese servicio. Si lo tuvieras en manual podria llegar a pasar eso en determinadas circunstancias.
Si eso no te ayuda, puedes ponerme el fichero .bat que tienes, a ver si podemos avanzar algo?
Seguro que es una tonteria, a ver si podemos solucionarlo.
Saludos
Excelente...
Saludos,
Pues bien, primero quisiera felicitarte por el blog y cada una de las explicaciones. Soy usuario de win y pues como dice, he estado amarrado a ese SO por que hay programas que no puedo dejar. Pero hoy me he enterado que hay posibilidades de tener programas de win dentro de linux y pues tu blog es uno de los mejores que he encontrado (por no decir el mejor) y pues intento migrar a linux definitivamente.
He utilizado VMWare hace tiempo, pero al reves, SO anfitrion Win y montaba Linux, pues solo tenia que hacer unos programas. El unico problema que vi es que la maquina virtual, genera un "disco virtual" para el SO, y la información generada dentro de la maquina virtual, pues se quedan ahi (por cierto, perdi informacion por eso)
Mi pregunta es la siguiente: Con esto que tu mencionas, la informacion generada por algún porgrama de win, se guarda en el dico virtual, o es posible direccionarlo a alguna parte del disco duro, donde puede estar respaldado?
De antemano, gracias.
Si, se puede hacer. Hay
Si, se puede hacer. Hay varias opciones.
Como ves, opciones hay varias, y eso que no menciono la de crear una red, que para mí es la más engorrosa y que para lo que necesitas no es necesaria. Espero haberte orientado.
Saludos
Respuesta realmente exacta
Saludos de nuevo,
Te agradezco de antemano la respuesta rápida de mi duda. Si bien, la versión WorkStation seria la mejor solución, el problema es el pago del mismo (aunque lo podría "comprar" XD) pero eso de la ideología de software libre, open source y demás, que es la filosofía principal de linux, no me pareceria tan correcto hacerlo.
Así que la solución mas viable es un servidor de FTP con el Filezilla.
Mencionas también el uso de VirtualBox que tambien me parece una buena opción. Segui investigando sobre el tema y me he encontrado con otro software que suena interesante. WINE, que también parece ser bueno. De casualidad no sabrás las desventajas de usar este otro programa.
Bueno, no te quito más el tiempo, con lo que has escrito aqui es suficiente para que empieze a migrar a linux. Cada vez estoy más seguro de migrar a Linux.
Gracias por tu ayuda.
Si, en efecto, Wine es otra
Si, en efecto, Wine es otra alternativa, pero en este caso no ejecutas una maquina virtual. Lo que hace wine es reimplementar el API de Windows y te permite ejecutar aplicaciones Windows dentro de Linux.
Sin embargo Wine tambien tiene sus limitaciones y algunas aplicaciones no las podrás ejecutar correctamente o de ningún modo. Es cuestión de probarlo para cada aplicación.
Ese es mi consejo, que las aplicaciones que necesites las pruebes primero en wine y si no funcionan como es debido, que las ejecutes en una maquina virtual. Recuerda que la maquina virtual, aunque no consume recursos excesivos, si consume más que wine generalmente.
De nada, si tienes alguna duda más, no dudes en plantearla.
Saludos
NO ME FUNCIONA
Hola amigo, que tal, yo tengo instalado linux ubuntu 7.10, he hecho todas las indicaciones que mencionas, cambiar el acceso remoto de usuarios, modificar la configuración de terminal services a automático, el valor del registro, simplemente todo..
Claro siguiendo los pasos que aquí mencionas y muestras, cuando llego a la parte que cierro sesión no aparece la vmware terminal, y la ventana de inicio de sesión aparece como si nada.
Ahora la linea de comandos que se debe de escribir en la consola, me aparece que el comando rdesktop no existe..
que onda que hice mal,, créeme hice todo tal cual lo mencionas.
gracias y espero respuesta
Con las pocas pistas que
Con las pocas pistas que me das, solo te puedo aconsejar que lo vuelvas a realizar todo siguiendo el proceso paso a paso.
Me extraña mucho que no te aparezca el comando rdesktop, pero mucho. De todos modos, si no lo tienes instalado, solo tines que instalarlo, rdesktop.
Saludos
Proceso con VirtualBox
Hola, muy completo el tuto, ahora quisiera saber como crear un script que me lance Live Messenger desde Ubuntu Gutsy 7.10 pero utilizando VirtualBox. He hecho el procedimiento hasta el paso de apagar la máquina pero no si sea necesario el rdesktop para utilizarlo como comando.
Gracias por la ayuda.
Solo 2 preguntas
Antes que nada te felicito por el excelente articulo, estaba buscando alguna posibilidad parecida desde hace tiempo ya que con wine no me ha ido del todo bien, y antes de reformatear todo mi sistema (por razones de particiones espacio en disco etc.) quiero despejar dos dudas:
1- Funciona exactamente igual en debian Eth (supongo que si por estar ubuntu basado en este pero por si acaso me faltara alguna cosa)
2- Escucharía sin problemas el audio de las aplicaciones del windows (ya que sigo anclado a el por aplicaciones de audio no equivalentes en GNU/Linux por mi trabajo)
Agradecido de antemano por tus respuestas.
audio
Menù de inicio
Hola buenas buen dìa me parecen muy buenos tus conocimientos y quiero ver si me podrìas ayudar, resulta q no me aparece el menù de inicio ni los iconos de escritorios y abro algunas cosas con el administradorde tareas, me dijeron q escribiera explorer.exe pero no me lo acepta y hasta la fecha sigo sin tener acceso a todos mis programas, como al panel de control por ejemplo. Te dejo esto esperando tu ayuda.
Gracias q estes bien.
Dios te bendice =)
Barra de tareas como ventana
Que tal:
Tengo el problema de que al lanzar la instruccion:
rdesktop -A -s "c:\seamlessrdp\seamlessrdpshell.exe c:\calculadora.bat" IP_maquina_virtual -u usuario -p contraseña
aparece la barra de trabajo del win XP pero con un borde (como una ventana) y cada ventana que abro trae al rededor el borde de una ventana de ubuntu.
Enviar un comentario nuevo