I have a 16GB Lenovo laptop which I use in my daily work. It runs Windows 7 and while you can install SharePoint 2010 on Windows 7 I choose never to do that (you can read more here about why I don’t use Windows 7 as my SharePoint development platform). I am not a big fan of dual, triple, quad, (or whatever comes next) booting, because as soon as I boot into one OS I will likely need to send email or do something which is setup in another OS. I also don’t like running a server OS on my laptop because I use Bluetooth every once in a while and I like the hibernate and sleep functionality Windows 7 provides. So until Windows 8 hits mainstream with its virtualization platform I must resort to running a 3rd party virtualization solution so I chose VMWare Workstation and currently I am running their latest version 8.0.
As a Microsoft employee we were strongly discouraged from running VMWare however I know a good number of consultants, whom like me, decided it was better to use the best tool for the job and ask for forgiveness if it ever came to be an issue. If asked, I never denied running VMWare but I didn’t promote VMWare or sit the box on top of my desk. Part of my daily routine was (and still is) to use Remote Desktop to access my running VMs and staying out of the VMWare Workstation console as much as possible – this kept down the questions about my loyalty and dedication to Microsoft but more importantly Remote Desktop seems faster. more responsive, and really had most if not all of the capabilities I need with a smaller memory and processor footprint. This also meant I can use the same tool to access my local VMs as I do to access other remote servers.
One of the challenges with VMWare Workstation and using Remote Desktop to access your VMs is the fact you still need to start the VMs before you can access them via Remote Desktop. This typically means you must open VMWare Workstation manager first, start the VMs, close it down with the VMs still running, and then connect with the Remote Desktop client. Out of laziness and the fact I like to code I spent a few hours and wrote a very simple tool which runs in my task tray called VMWhere VM Manager. It uses the VMWare API to start, suspend, shutdown, and turn off the guests instances running on my local machine. The VMWare API is COM based and I used a slightly modified version of the VMWare Tasks project on CodePlex to help out here. The application supports VMWare Workstation 7.0 and 8.0 running on Windows 7 with .Net Framework 3.5. The application itself is just a single EXE and DLL which can be dropped in any directory. If you want to start the application minimized you can use the -tray command line parameter.This is useful for when you want to start the application when Windows starts but you don’t want the window in your face.
When starting a VM from the tool you will have to wait a spell for the VM to boot and be ready for RDP access. To help I decided to hook the VMWare client tools start event and display a balloon tip to indicate the VM guest has started. As helpful as this is you will likely still need to wait a dozen or so seconds before an RDP session can be established but at least you have some indication.
So if you want to run your VM Guests with VMWare Workstation and use Remote Desktop to access them because it’s a better solution or because you don’t want to promote the fact you are using a non-Microsoft product VMWhere VM Manager may offer some help. The tool is totally free and as mentioned was a quick and dirty side project. As such I don’t offer support, warranty, licensing, etc. so it is a use it as you see fit but please don’t expect bi-monthly CUs.
Tool Download: VMWhere.zip (62 kb)