How To Run Virtual PC 2007 and Windows Virtual PC on the Same Machine

Windows 7 introduces a feature known as Windows XP Mode, which is reliant on the latest version of their virtualization software: Windows Virtual PC. The older Microsoft Virtual PC 2007 is unable to run when Windows Virtual PC is installed, and vice versa. But what if you need to run both? Microsoft says it's impossible, but I will prove otherwise.

Reasons for needing both

Why would you need both? There are several scenarios I can think of:

  • You want Windows XP Mode but you also need to run Windows 98 in a virtual machine. (Windows Virtual PC runs Windows 98 very poorly.)
  • Your employees are accustomed to Virtual PC 2007, but you also want Windows XP Mode to work.
  • You just want to do something that Microsoft says is impossible.

Installation procedure

Please follow the below procedure to install both products. Note that this only works on Windows 7, since Windows Virtual PC and Windows XP Mode are not supported on any previous versions of Windows.

  • 1. Install Microsoft Virtual PC 2007, ignoring compatibility warnings.
  • 2. Copy the folder C:\Program Files\Microsoft Virtual PC to your desktop.
  • 3. Install Windows Virtual PC and XP Mode.
  • 4. Uninstall Microsoft Virtual PC 2007.
  • 5. Copy the Microsoft Virtual PC folder back into Program Files.
  • 6. Apply tweaks from the VPC2007Workaround.zip file below.

Easy fix

The below ZIP file contains everything you need to get Microsoft Virtual PC 2007 and Windows Virtual PC living together happily on the same machine. The contents are a file named Virtual PC.exe, as well as some registry files.

Navigate to C:\Program Files\Microsoft Virtual PC. Rename Virtual PC.exe to Virtual PC.bin. Then, copy Virtual PC.exe from the ZIP file into the folder. Be sure to rename the old Virtual PC.exe to Virtual PC.bin, since the included Virtual PC.exe is just a launcher!

Open the vpc-license.reg file with Notepad. On the last line of the file, replace the string "AAAAA-BBB-CCCCCCC-DDDDD" with your Windows product ID, which can be found by right-clicking My Computer and clicking Properties. Then, save the file and double-click on it to add the information to the registry. Be sure to enter your real product ID before double-clicking on the file!

Finally, double-click on vpc-shell.reg to add shell associations to the registry. Once this is done, you should be good to go! Please read the Limitations below first, however.

Download file: VPC2007Workaround.zip

Detailed information

Sadly, Microsoft Virtual PC 2007 doesn't "just work" when installed. It needs to be coaxed into running in an unsupported configuration, but once you do this, it runs very well. The above ZIP file is all you really need; however, the below information can be useful for the more technically-minded among you who want to know exactly what is going on.

Additionally, when you uninstall Microsoft Virtual PC, file associations and licensing information is removed. Fixes for both of these are included in the VPC2007Workaround.zip file above.

Hard block

Uh-oh! Microsoft has "hard-blocked" Microsoft Virtual PC 2007 on Windows 7, preventing you from running it. This is attached to the signature of the Virtual PC.exe file of Virtual PC 2007. To get around this, I renamed the file to Virtual PC.bin and made a simple program with the name Virtual PC.exe that launches it. Command-line arguments are passed to it as well, so you can continue to use shell associations.

Licensing information

When you launch Microsoft Virtual PC 2007, you will get an error about licensing information. To fix it manually, create a new file named "vpc-license.reg" and paste the following code into it:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Virtual PC]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Virtual PC\5.0]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Virtual PC\5.0\Registration]
"PID"="AAAAA-BBB-CCCCCCC-DDDDD"

Replace AAAAA-BBB-CCCCCCC-DDDDD with your product ID, which can be found by right-clicking My Computer and clicking Properties. (This is NOT the same as your Windows product key.) Save the file and double-click it to add the information to the registry.

File associations

.vmc files for virtual machines will need to be associated with Virtual PC.exe if you want the ability to double-click on the file. The "vpc-shell.reg" file contains the required information.

What works?

Everything that I've tested so far – network, drag and drop, virtualization. Both products run quite well together; please note the limitations below though.

Limitations

You cannot run both Windows Virtual PC and Microsoft Virtual PC 2007 simultaneously. This means that you cannot have a Windows XP Mode application running while you fire up Windows 98. It's slightly inconvenient, but oh well... sure beats not being able to run Windows XP Mode at all.

The above fix takes care of this by detecting if Windows Virtual PC is running, and giving you the option to close it.

Conclusion

I hope this has saved you some hair-pulling, swearing at your computer, and disappointment. Please tell me how this worked for you in the comments. I'd like to hear your experiences!

Posted on Saturday, January 22, 2011 at 8:35 PM | Permalink

Comments (16)

Nelviticus
Friday, February 18, 2011 at 3:08 AM
Wow, that's quite impressive! I may have to give it a go.

Would you mind posting your source code? I'd love to see how it's done.

Friday, February 18, 2011 at 1:22 PM
I actually found an error in my article... namely, this will only work if you install the Windows CE emulator first. This will install an older version of the Virtual Machine Monitor driver. Installing Virtual PC will upgrade this driver, and when it's uninstalled, the upgraded version will stick.

If you don't have the virtual machine monitor driver installed, you'll just get a big fat error message when running Virtual PC 2007. And if you have it installed the proper way, Windows Virtual PC will refuse to start. I'm still working on a way to manually install the vmm.sys driver without all this hackery.

My .exe file is actually very straightforward -- it just launches the Virtual PC.bin file and passes any command-line arguments to it. A "fancier" feature looks for the existence of vpc.exe in the list of running processes and prompts the user to kill it if necessary. I also had to use Resource Hacker to update the icons in the file since Visual Studio doesn't let me specify resource IDs for the icons. If you still want the (ugly and hackish) code, I'll email it to you -- just shoot me an email on my contact page.

Thomas
Monday, April 25, 2011 at 4:47 PM
@nookkin Hey, any news on this? I copied the Microsoft Virtual PC folder from an older disk to my current system (which already contained XP Mode) and applied your zip contents. Problem is, as you said, the VM monitor driver. Any way to get this running without going through the entire process of installing and uninstalling?

Tuesday, April 26, 2011 at 9:40 AM
@Thomas Yeah... installing Microsoft Virtual PC will install the driver, installing Windows CE emulator from here will also use the same driver, uninstalling VPC while keeping CE will prevent the driver from being uninstalled as well.

I have been unsuccessful in extracting the necessary files... vmm.sys is the main file but I can't get it to load satisfactorily otherwise.

Thomas
Tuesday, April 26, 2011 at 5:52 PM
@nookkin Tried that but could not install the emulator. Guess that it runs only on 32 bit machines but I have a 64 bit OS. Tried the MS device emulator 3.0 (64 bit) instead but it does not seem to include the monitor driver. So, after all, looks like your work around is good only under very special conditions. Thanks anyway.

Azarien
Thursday, April 28, 2011 at 6:41 PM
I just copied the VMM.SYS file into c:\Windows\System32\drivers\ and it worked.

I have never had the CE emulator installed.

milan.dindos
Saturday, April 30, 2011 at 8:59 PM
OK guys, You DON'T have to uninstall Virtual PC 2007 in order to run XP mode or Windows Virtual PC (that keeps your VMM.SYS on the machine). You don't even have to use the workaround!

XP mode and Windows Virtual PC checks only if Microsoft Virtual PC 2007 is installed on your PC, (Control Panel -> Installed programs). Removing it from there fixes the issue.

Fire up REGEDIT and navigate to "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" find the right key for your "Microsoft Virtual PC 2007 (SP1)" and delete the key. This will remove it from the list of installed applications. Thats all

Saturday, April 30, 2011 at 11:53 PM
Thanks for the input!
I just copied the VMM.SYS file into c:\Windows\System32\drivers\ and it
worked.
I actually tried that initially, but it didn't work for me, which is why I came up with the more elaborate method involving the CE emulator. Weird. But if it works, it's definitely a better solution.

And thanks, @milan.dindos . That makes sense, and it's definitely a better solution than the "frankinstall" method outlined in the article :P

Finally, the workaround (the .exe file at least) might come in useful for its ability to detect if Windows Virtual PC is running and kill it if necessary.

I guess you learn something new every day...

Dallas
Tuesday, May 24, 2011 at 4:15 PM
Very good! Thank You...one small problem. I'm not able to drag files from the virtual pc to the hosts desktop. I can drag from the host to the virtual pc though (Virtual PC 2007). Windows creates a 'DragonDropProcessFolder' folder where I attempt to drag the files (my desktop) and the virtual pc indicates "Virtual PC has encountered an error on the host while copying files, An error in Virtual PC has occurred (d3)". I've searched and found others having this problem which has been corrected by an un-install/ re-install of Virtual PC 2007 (accompanied by reinstall of VM Additions. I've tried simply un-install/re-install of VM Additions with no luck.

Krishna Chaitanya
Thursday, July 14, 2011 at 2:29 AM
Very Good! Thank YOu. Its working.

Michael L.
Wednesday, August 17, 2011 at 9:40 AM
@milan.dindos Hi,
Thanks Milan for the tip regarding the registry. However, deleting the registry key you specified did NOT work on my system (Win 7 SP1 64-bit), I still was unable to run XP Mode.

But you got me thinking about other possible registry keys, and when I deleted the following registry key I was indeed able to run XP Mode:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\899384DAA9E2504438FFE6 05A34FC9BB]

Your exact key name may be different, so I suggest you go to [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products
and search for "PC 2007" in order to find the exact key name.

Now I am able to run XP Mode with no problems. The only downside to deleting the registry key that I mentioned is that VPC 2007 is no longer in the program list, and so cannot be easily uninstalled.

Actually, now I see that while I can run XP Mode, I still cannot run Virtual PC 2007, I get a message regarding program compatibility. I had first installed VPC 2007 and it worked fine, so it appears that the installation of XP Mode or Win VPC is blocking it. Tomorrow I will try the renaming & using the .bin file method that's mentioned here.
-Michael

Michael L.
Thursday, August 18, 2011 at 6:01 AM
UPDATE -
Today I tried the renaming & .bin file method, and now Virtual PC 2007 SP1 works as well as XP Mode.

So to summarize, here's what I did (on my Windows 7 SP1 64-bit machine):

-installed Virtual PC 2007 SP1 64-bit installation, verified that it worked.
-installed XP Mode
-installed Windows Virtual PC
-noticed that XP Mode will not work and that VPC 2007 will not work, they are blocking each other.
-deleted registry key:[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\899384DAA9E2504438FF E6 05A34FC9BB]
(again, your exact key name may be different, so I suggest you go to [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products
and search for "PC 2007" in order to find the exact key name.)
-now XP Mode works fine
-using the file VPC2007Workaround.zip provided here by Nookkin, I renamed VPC 2007's Virtual PC.exe to Virtual PC.bin, and placed there the Virtual PC.exe file provided by Nookkin.
-now both VPC 2007 and XP Mode work.

With this method, it is not neccessary to use the registry files that Nookkin provided, or deal with the vmm.sys issue (since I did not uninstall VPC 2007)


As mentioned above, it is not possible to have both VPC 2007 and XP Mode running at the same time. If I have XP Mode running and then try to start VPC 2007, it will give an error message. If VPC 2007 is running and then I try to start XP Mode, Windows will freeze for a few seconds and then I get a BSOD (Blue Screen of Death - ouch!)

If I have XP Mode running and then close it, I must wait about 15 seconds until I can start VPC 2007, otherwise I get an error message.

Many thanks to Milan for providing the registry idea. A big thanks to Nookkin for providing the zip file, as well as for the explanation he provided here which enabled me to arrive at what seems to be an improved solution to this issue. My method essentially uses elements from both Nookkin and Milan's solutions.

-Michael



Thursday, August 18, 2011 at 5:54 PM
@Michael L. Actually, my .exe file will detect that XP Mode is running and will allow you to kill it instantly or keep trying to open it nicely.

Thanks for your feedback! I'll be upgrading at least one of my machines to 64-bit Windows and I wouldn't be able to get this to work without the input I've received from the comments.

Michael L.
Sunday, August 21, 2011 at 6:11 AM
@nookkin You're right, your .exe file does indeed detect that XP Mode is running and gives you the option of closing XP Mode or re-trying.

I apologize for not being accurate in describing that.

-Michael

AndrewG
Thursday, November 3, 2011 at 5:31 PM
Hey,

Thank you so much for this...you literally just made my computing life -this- much better ;)

I wanted to clear up a few things. Here's exactly what I did (on Windows 7 Ultimate, 32-bit) in order:

a. Install the CE emulator, as mentioned above. Do this FIRST. I learned that the hard way.
b. Install VPC 2007.
c. Copy the VPC folder to the Desktop.
d. Install VPC (newer) and XP Mode.
e. Uninstall VPC 2007.
f. Follow the instructions provided already (be sure to enable file extensions to display, so you can change the extension, not just add .BIN to the filename itself).
e. Bingo!

I know it's kind of a pain. I'm not sure if the exact same procedure applies to 64-bit Windows 7 (and even with different versions of 7), but this is what worked for me, so I wanted to throw this out there.

Thanks, nookkin and everyone else! I definitely appreciate this once again :) MS really should rethink their new VPC product, it sucks!

Thursday, December 8, 2011 at 4:44 AM
You guys are great.

64-bit laptop and it works like a charm running a Windows XP .vpc that would not run with Windows Virtual PC.

I had to get this to work because the proprietary programs that I have aren't supported any more.

I didn't uninstall Windows Virtual Machine or XP mode. I didn't reinstall XP mode. I didn't move around any .SYS files.

I installed the Virtual PC 2007 not into DIR "Microsoft Virtual PC", but into "Microsoft Virtual PC 2007" and changed the vpc-shell.reg file in the FIX to reflect that change, just in case.

Additionally I had to delete this exat key mentioned above in the notes to make Windows Virtual PC with XP mode work:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\899384DAA9E2504438FFE60 5A34FC9BB

Finally, When I tested my Windows XP .vpc, I had to turn off Hardware Virtualization. When I opened the image with Windows XP with Virtualization ON, the virtual machine got stuck starting (black screen).

Thank you again.

Leave a comment:

You may format your comment using BBCode. (More information) Your e-mail address will be used for Gravatars and opt-in notifications, and will never be displayed publicly.

Please read the Comment Rules and Tips, Privacy Policy, and Disclaimer before posting.
Comment moderation is enabled.