I'm trying to find out what existing options there are out there to boot a machine into a remote desktop (RDP). Ideally the user would have a USB key and just plug it into the machine and boot via it establishing an RDP connection to their virtualised enviroment (stored on a server).
Essentially the anticipated flow will be Power On -> Boot sequence -> Remote Desktop Login screen.
I was researching this today and found 3 solutions that may work:
well - you can use modified knoppix or other live distro and run rdesktop which is linux client for RDP protocol. remastering live distro was time consuming for me, but it's definitively doable.
info about remastering knoppix: here. and yes, it can boot from an usb pendrive.
your another option is boot over network - with pxe and then nfs - even less costs, and more centralized management.
PS: this looks even beter.
Also, you can use the Windows AIK to make a WinPE image, copy the MSTSC.exe (et al) files from a Windows 7 computer into the image and use that. It can be PXE booted, live or RAM / CD or USB, installed to a HD.
The required files (relative to %systemroot%\System32) are:
Note: The reference computer the files are copied from must match the version of WinPE you're creating, 32-bit or 64-bit. 64-bit WinPE has no ability to run 32-bit programs and vice-versa.
You may also want to include setres, a free program to set the resolution from the command line/scripts/etc. The WinPE default is 800x600 with no built-in way to change it.
I really spent a lot of time doing this so finally sharing it so that other people can save some time for themselves. This needs a booted up windows 7 Ent machine.
Steps include the following.
mstsc.exe d3d10.dll d3d10_1.dll d3d10_1core.dll d3d10core.dll d3d10level9.dll d3d10warp.dll dxgi.dll msacm.dll msacm32.dll mstscax.dll msacm32.drv
en-US\msacm32.dll.mui en-US\msacm32.drv.mui en-US\mstsc.exe.mui en-US\mstscax.dll.mdui
Additionally you can delete bootfix.bin from winpe so that it will not ask you for "to press from CD/DVD, press any key.."
Create a file called as winpeshl.ini and paste following contents in it:
[LaunchApp] AppPath = %SYSTEMDRIVE%\windows\system32\mstsc.exe
save it under c:\windows\system32 of mounted boot.wim
Commit the changes in boot.wim dism /unmount-wim /mountdir:F:\temp\boot /commit
Make a media out of it: makewinpemedia /iso f:\temp\work f:\temp\rdp.iso
Boot a VM from this rdp.iso.
PS: don't try these steps with a windows 8/8.1 machine as somehow it never work.
I would suggest Puppy Linux as you can install and save to disc even if you are using a live disc.
I use Ubuntu Server with LTSP. It's a decent framework made to network boot thin clients into an Ubuntu desktop, but you can actually edit a config file (lts.conf) and tell it to load 'rdesktop' instead of the gnome desktop. It may not be the best solution for you because it requires an Ubuntu server to easily create/update/hand out the PXE boot images, but it does away with users needing a USB key.
[edit]
I should also mention it supports pulling the local CD drive and attached USB storage devices in to the windows server too--which you may not get from a custom Linux build on a USB key unless you do some coding.