Having for years been an exemplar of how to maintain compatibility between software versions, Microsoft have recently suffered some horrible aberrations in this area. Setting aside the user interface horrors of Office 2007, my worst recent challenge has been Microsoft's Virtual PC technology.
Windows 7 introduces a new version of this technology, known as Windows Virtual PC (VPC for short). This has a couple of great advantages over the previous version, Virtual PC 2007: USB support and very good desktop integration with Windows 7. It's the default way to handle legacy programs and devices in Windows 7. In fact, Microsoft have a web page which includes a large table trumpeting all the benefits:
Features |
Microsoft Virtual PC 2007 |
Windows Virtual PC |
Integration with Windows XP Mode |
||
USB support |
||
Seamless application publishing and launching |
||
Support for multi threads |
||
Clipboard sharing |
||
Printer redirection |
||
Smart card redirection |
||
Drive sharing |
||
Integration with Windows Explorer |
||
Known folder integration between host and guest |
||
Support for higher resolutions |
||
Requires AMD-V or Intel-VT CPU feature |
However, there's a dirty little secret - Microsoft have badly broken backward compatibility with this new version, and lost several key features of VPC 2007. The table should really have at least four more rows:
Features |
Microsoft Virtual PC 2007 |
Windows Virtual PC |
Can share virtual machines with other PCs running older versions of windows |
||
Fully supports CD drive e.g. for CD ripping |
||
Console program to manage VMs |
||
Compatible with 3rd party program launchers |
Several of these were real deal-breakers for me, as I regularly move virtual machines (VMs) between hosts, and have to do my CD ripping in an XP SP1 VM since an earlier Microsoft act of compatibility breaking (when XP SP2 changed WMA format so that it's incompatible with many MP3 players, including the one in my one year old car!).
On the other hand, I really need USB support for a particular device
which doesn't have Windows 7 drivers.
The ideal would be side by side installation of VPC and Virtual PC 2007,
but this doesn't work as Virtual PC 2007 just won't run if VPC is
installed. Worse, running up an old VM in the new version upgrades the
virtual machine additions so that that VM then blue-screens on other
hosts.
After a couple of weeks mulling this dilemma, I have found a solution, but ironically it has driven me to Microsoft's competition when I've previously been a loyal supporter...
So I now have a Windows 7 machine running Virtual PC 2007, for my older and shared VMs, and VMware Player, for my "XP Mode" VM.
Aside from the slight ridiculousness of running two different workstation virtualisation technologies, this is almost ideal: Virtual PC 2007 delivers all the features I've exploited on other hosts, while VMware Player, also free to download and use, is a good alternative to Windows VPC, but one which has no problem existing side by side with Virtual PC. If anything, it has much better network and USB support. The only loss is the ability to run VM applications integrated into the host desktop, but in my case this is no significant hardship (although, as they say, your mileage may vary). I could, perhaps, move to VMware alone, but that entails more effort to update my other VMs than I want to take immediately.
If you're happy to set up a new Windows XP VM, the above solution is very easy, but I wanted to re-use my existing "XP mode" VM, mainly because I'd already activated key software in it. I've seen the statement elsewhere that this is impossible, but I can confirm that as long as you have access to an XP install source (ideally with SP3) and product key, e.g. through MSDN, it's not that difficult. Here's the process I followed:
At this point, you have an XP mode VM which will run under Virtual PC 2007. If you need to run it under VMware (e.g. to get USB support) then you'll need to take further steps:
It would be good if in future Microsoft paid more attention to compatibility, but it's good to know that there's a way to work around these particular limitations.
Having been a fan of Microsoft Virtual PC for years, this business could easily make me a complete convert to VMware. A couple of years ago I converted a client's "standard desktop" to a Virtual PC VM. This worked, but was never really adequately reliable, with around two out of three sessions crashing with BSOD errors related to MRXSMB.SYS. Despite several attempts I never managed to fix this, or get to the bottom of the cause.
After adopting VMware successfully for my "XP Mode" VM, I turned my attention to the "standard desktop" VM and converted it with the vCenter Convertor. The conversion was very easy, and automatically managed the change to the devices and the VM additions / tools. I did have to re-activate Windows, because the changes to the "virtual hardware" obviously exceeded some threshold, but otherwise it was pretty much hands off.
Since that conversion the VMware version has been absolutely rock solid. No BSODs, and after a bit of experimentation with the network adapter settings all apps seem to be running very smoothly. It feels a bit quicker (although that could just be down to the reduced frustration), and the disk compaction tools have reduced to size of the virtual disk file down well below my starting point.
2-0 to VMware so far...
January 17th 2010
I have been running XP-Mode in Virtual PC inside Windows 7 for a while. My original opinion is that it was fast and amazingly integrated, especially running standalone apps inside the VM (it still takes a while to fully open the application though)
However, I recently had the following problem: I had to run FreeOTFE to mount an encrypted file. FreeOTFE does not currently run in Windows 7 64-bit without some hassle (due to driver signing) so I needed Windows XP inside Virtual PC to be able to use FreeOTFE (I know…… I also use Truecrypt; and I know that Truecrypt runs perfectly well in W7 64-bit but there were some important reasons for me to stick to FreeOTFE in this particular case).
FreeOTFE obviously installed without issues in XP inside Virtual PC but to my surprise failed to open the encrypted file. So I decided to try VMWare Player 3.xx and glad I did. Not only FreeOTFE runs perfectly in XP inside VMWare Player but the whole OS seems to be faster (might be just my appreciation).
Note that I am not stating that one is better than the other, just that in this case VMWare did the job very well. Sincerely, I am considering buying Workstation in the future.
Thanks Andrew!
It really helped me to sort out issues related to my MS Virtual PC 2007 virtual machines and USB port issues. Googled a lot and could not find anything useful, except suggestions to migrate Windows 7 WPC. Finally, planning to use VMware converter along with VMware player to achieve USB port access in Guest VMs…
If you'd like to comment on this article, with ideas, examples, or just to praise it to the skies then I'd love to hear from you.