I upgraded to Windows 7 on a PC that is a few years old. The CPU was one revision away from having Hyper-V on it. So, I had to install Microsoft Virtual PC 2007 (v6.0.156.0) to run full XP instances instead of the seamless XP virtualization that is advertised so much. That's fine though; the 'older' version is useful since I use it to run different versions of the whole XP/IE stack for testing. (I'm a web developer.) ...And for the one 16-bit application we still use at the office for scheduling. * sigh *
The virtual instances work fine, including networking. My issue is that after a reboot or coming out of sleep mode, my host Windows 7 won't connect to the Internet. It will connect to the local network fine. If I disable the "Virtual Machine Network Services" item (I'll call "VMNS" from here on) in the LAN Connection properties box, it starts working. But than the Virtual PC instances lose their network connectivity. If I re-enable VMNS again in the same instance, everything works (Internet on host and in the virtualized instances). But after the next reboot/sleep cycle this starts over.
The route table gave me a clue though. When doing a cycle w/ VMNS enabled:
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 On-link 10.0.3.51 20
0.0.0.0 0.0.0.0 10.0.10.10 10.0.3.51 276
...
After VMNS is disabled, the first route goes away. I assume that is for VMNS to intercept virtualized instance's network connections and forward them correctly? Just a guess though.
More info:
I checked my Firewall settings and Services (because I'm sort of a control nazi and turn off a lot) but couldn't find anything that made sense and if turned on changed anything. So it might be something there I'm missing, but I don't know what.
My current hacked solution:
So, I figured I'd mess with the routes myself to see if that helped, it did. If I run a route delete 0.0.0.0
on the universal (0.0.0.0) gateway routes, and add back in just the 2nd line with route add 0.0.0.0 mask 0.0.0.0 10.0.10.10
--the one that points to my actual gateway (10.0.10.10)--then I don't have to mess with the disable/enable cycle of VMNS, and everything works.
Running those two commands is faster then bringing up connection options and disabling and re-enabling VMNS, but I still don't want to have use that hack script every boot either. (Oh, and I also tried messing with hard-coding TCP/IP settings in my network adapter, including setting high metrics, etc., but that didn't help either.)
Any suggestions on the right way to fix this?
****I have put in a temporary fix by using the gpedit.msc Under Local Computer Policy/Computer Configuration/Windows Settings/Scripts (Startup/Shutdown)/Startup To add a file click Show Files and create the batch file in the provided window I added a Startup.cmd script file that contains the following
route delete 0.0.0.0 mask 0.0.0.0
ipconfig /release
ipconfig /renew
This removes the bad route at startup
I ended up just creating a batch file and running it at login from Windows schedule. Depending on the power status when I come back to the machine, I still have to run it myself as administrator. Not my preferred solution, but it works.