Does your mouse stop working when you TS into a host machine and try to use a guest OS? Here's why.

To continue my "here's why" series of posts, I figured I'd talk about something else that a lot of our users have run into - the infamous disappearing mouse when you try to use a Hyper-V guest while TS'd (that's Terminal Services - or Remote Desktop) into the host machine.

Here's the scenario:  You've got a VM that you need to use, so you TS into your host machine, start up the Hyper-V Management Tool, connect to your VM and try to use it.  Suddenly, your mouse doesn't work anymore, so you try to release it using the CTRL-ALT-Left Arrow hotkey.  That doesn't work.  Now you can't even use the mouse on your host operating system.

If you close your TS session and restart it, you get your mouse back, but this happens each time you try to control your guest.

Some of you are probably saying "Yes - that happens to me all the time, and it's annoying!"  Others may think I'm making it up, since they've never had this problem.

So, here's what's going on.   There are two modes of mouse operation when we're dealing with Virtual Machines:  integrated and relative, as discussed by Ben Armstrong here

When you TS into the host machine, your mouse is running in integrated mode.  When you're using a VMConnect window to control a VM, the mouse runs in relative mode (with one important caveat, which I will come to later on).  When you mix integrated and relative mode, you get badness.

So what is a humble system administrator or virtualization enthusiast to do?

There are a few work-arounds:

  • Run Windows Server 2008 as a guest.   No, seriously.  The Hyper-V Integration Components are built into Windows Server 2008, so it will simply work in this configuration out of the box.
  • Install the Integration Components for your guest operating system.   This is the caveat I was talking about earlier, and is the primary reason why some of you have quite possibly never seen this.   If you have the ICs installed and running, the mouse is running in integrated mode, and works flawlessly over TS.
  • TS directly into the guest operating system.   If there are no ICs available for your chosen guest OS, you can use TS (or any other remote control application, really) to control the guest directly.  This assumes, of course, that the VM is exposed to the same network as the machine you're controlling it from.
  • Use the actual, physical console of the host machine.   If you take TS out of the picture, you won't have this problem.
  • Remote Administration tools for Hyper-V.   These aren't available yet, but in our final release, we'll provide a way for you to install the Hyper-V Manager tools on Windows Vista, so you won't actually have to run them on a server.