123 comments

[ 1.8 ms ] story [ 195 ms ] thread
The VMs are designed for Virtual PC, which is of course only available for Windows.

There's a script called ievms that will automatically downloade those VMs and convert them for use with VirtualBox on OS X or Linux:

http://xdissent.github.com/ievms/

Interesting. Is there a similar option for VMWare, or is the format too different?
There are utilities to convert a VirtualBox VM to VMware, if you are feeling adventurous :-). From my experience though, it's kinda painful (I forget what the issues were but I remember regretting the decision to convert the VM).
If you're on a Mac and have VMWare fusion its actually really easy. Just use VMWare to import the VHD files and it works fine. No need to use other utilities.
Might as well just install VirtualBox, its free afterall. I stopped using VMWare when I had to buy it again for Lion.
VMWare Player is free (AFAIR for non-commercial use, whatever that is)
It's not available on OSX, they provide VMWare Fusion instead, which costs 50 bucks
I prefer trading time for money. Fusion is fast and just works.
VMWare Fusion's importer works perfectly - in the past there used to be a concern with drivers but at least by VMware 4 it just works.

Procedure: 1. Download 2. Use unrar or http://wakaba.c3.cx/s/apps/unarchiver.html to unpack the segments 3. Open VMWare Fusion & choose import 4. Get coffee & wait for disk I/O 5. Install VMWare tools & pending Windows Updates 6. Take a snapshot so you can reset it after the timelimit sets in (as noted by Microsoft, they disallow storing data durably for more than 90 days)

Yes it's just such a pity that the virtual pc images are so massive.
I've been using these for the past few months and they've worked fine. Plenty of things I wish worked better, but for the most part I'm happy that it's free and I don't have to reboot just to debug some CSS.
ievms is not even necessary. This article explains how to do it with VirtualBox, http://samvermette.com/256
ievms was written for convenience, not out of necessity.
ievms is brilliant. It's made my life much easier, thanks.
You can open VHD's in VirtualBox without any conversion.
Except these aren't VHDs, they're EXEs that wrap VHDs.
7zip opens them to reveal the .vhd.
Virtual PC isn't supported in Windows 8 and I couldn't get these images working in Hyper-V. They are truly almost an afterthought from Microsoft.
Selling an operating system is an afterthought in Microsoft's attempts to get you to give them money. If only our other incompatibility woes were so blessed with such afterthoughts.
Doesn't IE10 let you run the past versions of IE with developer mode? Haven't tried with IE10 but i know IE9 had it.
No, that's compatibility mode. It isn't the actual browser.
Compatibility mode isn't what he's talking about. In the developer tools, there's also "browser mode", which allows you to select a different user agent, and "document mode", which allows you to select a rendering engine from IE7 onwards.
I know about them. They aren't actually the browsers in question, though. It's IE9/10 engine with some stuff disabled.
the sad truth is; anything below ie7 should be dropped. Unless you are developing for a corporation that won't move away from ie6 and then you should only test on ie6.
The truth is anything below IE8 should be dropped. IE8's great... it has developer tools, JSON and localStorage, etc. IE7 and below have none of that.
Realistically it should be below ie8. IE7 is old and should be dropped.
This. We had a client complain that their password failed validation using IE7. Even simple passwords that should pass failed.

Turned out to be an IE7 specific regex bug (a look ahead bug), that we couldn't replicate using IE8 and IE9 set to IE7 compat mode.

Tracked down a copy of XP with IE7 and replicated the bug. Which led me to Google regex bugs related to IE7 and managed to track down the exact issue.

No: the compatibility modes aren't the same as the real browser - they try but some features, especially things like CSS or DOM handling of errors, non-standard properties, etc. will not be consistent enough to avoid testing in the real thing.

When IE8 was out, setting IE7 compatibility mode using an HTTP header worked for 99% of a huge internal business app but I had to monkey-patch around a third-party library because the code which worked in IE7 raised an exception in IE8's IE7 compatibility mode due to significant differences in the underlying JavaScript engine. This was an improvement - IE7 should have done the same - but it broke a huge enterprise shovelware system with an indifferent vendor who waited until after IE8 was released to start testing (a support manager actually contacted me asking if they could redistribute my patch!).

did you let them redistribute it?
I'd already posted it publicly, so I didn't even try to charge them.
My experience is that about 90% of the time, the compatibility mode in IE9 or IE10 will give you an accurate prediction of behavior in IE7 or IE8. It's that last 10% of the time, generally related to JavaScript issues in the original browser engines or obscure CSS bugs. So it works for basic stuff, but if you have anything complex going on you should test in a VM running the actual browser version you want to test.
Now this sounds interesting. Why wouldn't they run in 8?
This is the most sane part of all IE testing I've done. Love it.
Thanks for that.

I was a little baffled why MS would make this images only run on Windows when the people most likely to need to emulate other versions of IE / Windows would be non-Windows users.

Presumably it's useful for web developers on Windows 7 or above, but who need to test on IE6/7.

As to why they'd use their own VM in preference to VirtualBox I don't know. But to be fair, Microsoft isn't the only company that neglects developers who aren't on their platform; "not invented here" syndrome seems to impact all software companies eventually!

I suspect it's more useful for their big customers who need to test multiple versions – IE's most dedicated users are in the enterprise space, where Windows XP is still a major desktop platform.
Big thumbs up here for ievms. I use it all the time and I not so humbly was the first person to donate money to the project.

I can't believe that it's only raised $400 so far. It's completely excellent and I know lots of people out there depend on it.

Ah, part04.rar. So I can pretend I'm downloading warez from Usenet and decoding and piecing it together by hand.
Note that these images can still expire after 30 days (or 90 days with "rearm").
In Virtualbox you can take a snapshot of the VM after the initial install and revert to that snapshot to reset the trial period. ievms does this for you automatically.
Microsoft actually recommends doing so in the documentation for these images (except using Virtual PC, natch).
Why not just create a snapshot and restore that every time the software complains?
The biggest problem with these is that they all have an expiration date - and Microsoft frequently forgets to update them. And getting through to Microsoft to tell them it is out of date... forget about it.
Still better than having to buy a copy of Windows.
It's easier to pirate Windows than use these images.
I've been using these since ~2007 or so and this is a frequent issue. When new versions of IE or Windows come out they have been very, very slow to update these.
The idea is to just rollback the VM snapshot to day 1 and move on. These are for testing websites in IE.
The XP image has a hard expiration date (currently just a few months from now: 2/14/13). I believe you would need to rollback to s snapshot and screw with the system date or the VM.
Yes! We eventually stopped bothering with these because it was too much time to re-download and re-install them every time they expired.

Instead, we just narrowed our IE support to what we could maintain easily with a legitimate copy of windows installed on a VM.

I'm surprised more people haven't done this as it would seem an obvious way to solve the problem.

I've recently been in several large corporations and they won't support anything below IE8 now. Most are dropping support for IE8 after IE10 becomes more widely available.

(comment deleted)
Just a quick note that one of the easiest ways to get a legitimate license key is to join BizSpark. If you are a startup (which I imagine a lot of people here have some sort of startup) there is no reason not to be a part of it.
I agree. I'm a bizspark member with my side-business. It's actually been quite useful since I develop the application in C#, I can get Visual Studio Professional and every version of Windows to test against.
Thanks for posting, I had no idea that was available.

Count me as a guy who has a few copies of Windows I only use for browser testing in VMs...

Thanks! I am hoping this program will allow me to develop a Windows Phone 8 app without having to buy a new OS and tools.
One thing I also wanted to add is that BizSpark gives you free Azure platform access...with Windows Server keys! I think it works out to be two "large instances" for a year. I think large is like 2GB ram or so.
IIRC, it cannot be just any kind of startup, i.e. if you have a software service house (build software for others / consulting), you are not going to get into BizSpark.

Feel free to straighten out my misconception.

we are company, main products Wigs,False Eyelashes,Remy Hair Extensions,Indian Remy Hair Extensions,Stock Hair http://www.allbeautybox.com Piece,Print Hair Extensions,Fashion Jewelry..... they are 100% original and brand new with cheap price.

the our company have different kinds, there have males, females also girls needing, products are suit for different groups of people, maybe there is something you are just waiting for.

To some people love jewelrys, sure this is the good news for you, our company because our company Remy Hair Extensions is a manufactures, so our company can be lace front wigs sure you are the only one to be focus on the world, the most False Eyelashes important, these are the jewelrys and fashion and design.

our company also have the Do you feeling amazing, then go and action, our company will take best services waiting for Fashion Jewelrys you !

Important!!: our company accept safe payment, like Paypal.... do fast shipping , sure we protect our clients privacy, make order to our company, you get the safe business and privacy !!!!!

Installing a whole OS just to test a site on IE seems a bit excessive. Wouldn't it be easier to just test one's site on the cloud? (E.g. see http://www.microsoft.com/expression/products/SuperPreview_Ov..., though its for Windows.)
That's always bothered my about Internet Explorer. I can download Firefox, Chrome, and Opera all for under 20MB but I need to download 4GB to test Internet Explorer 8?
Seems strange, doesn't it? But the rendering engine is shared with countless other system components, it's not portable between operating systems (no IE9 on XP, no IE on mac/linux, no IE7 on certain x64 windowsen) and all attempts to extract the rendering engine into a portable .dll have quirks of their own (IETester et al).

Sad state of affairs, but a whole OS image is the only way to get guaranteed compatibility with what real-world users are seeing - A better comparison would be to iOS Safari or the Android browser, where the vendor just has zero incentive to make that specific browser work (identically) on other platforms.

I looked into some cloud solutions, but they are rather costly. If you could pay by the hour rather than month it might be more of an option.
These images work directly on vmware fusion btw.

the converter is built into the application.

what about parallels? (arstechnica recommends it)
For web devs, if you want to test your site on IE7, download the XP image and install IE7 on it - the image comes with the installer on the desktop. Don't bother with Vista unless you need to support something OS-specific, which if you do - you should just stop what you're doing and severely rethink your web dev stragedy.

For use with Oracle VirtualBox, you'll have issues with networking, which will prevent you from Activating the VM.

I posted detailed steps to get networking working in VirtualBox here: http://bittwiddlers.org/index.php/2012/11/xp-vms-with-virtua...

Or better yet, just use https://browserling.com/ which is from another HN member, pkrumins.
This is nice, but it suffers from the same flaw all the other virtual browser services suffer from: No pay by the minute/hour. I probably only need 1 or 2 hours with IE 8 every month or two.
Honestly, if it's not worth 20 bucks a month to you, you probably aren't in their target market (deliberately priced out of it, for good reason).
Depends, when you look at it another way $20 a month is almost your own virtual server with windows on it.
If it saves me ~30mins/month then it has paid for itself
It is going to cost you way more than $20 of your time to download/update/manage/run these VMs.
Similar remote browser testing services I'll be testing soon:

    http://saucelabs.com/
    http://crossbrowsertesting.com/
    http://www.browserstack.com/
Some of these even do mobile browsers too. After spending several hours setting up just 1 or 2 VMs, I'm convinced using these services is not only cheaper and more stress-free but also lets you keep more up to date.
Thank you for mentioning these. I tried BrowserStack and got so much value from the free 30min trial (found & fixed several IE8 bugs) that it was a no-brainer to sign up for a monthly plan.

Even the tunneling to a local Vagrant instance, with a subdomain (through lvh.me), worked simply and flawlessly. I couldn't have asked for a better experience.

We've been loving BrowserStack, particularly all the mobile emulators they've got available. Something like two dozen Android devices.
These have been around for years. I put together a guide for personal use a while ago, for how to get them running under VirtualBox on OSX. Should be a similar process under Linux. I don't have a blog or anything, so I'll include them here, hoping they'll be helpful to people here, sorry about the length (I last did this a few months ago, so it should be pretty up-to-date).

- Extract the RAR files. On OSX use UnRarX: http://www.unrarx.com/ At least with UnRarX, it will still work despite the first RAR file being a self-extracting .exe file which, obviously, can only run on Windows. You may have to open the multi-part archive using the second file, it will still work.

- Install VirtualBox from https://www.virtualbox.org/ Inside of VirtualBox, create a new virtual machine using the wizard. Make sure to choose the appropriate OS (for example Windows 7) and give it enough memory (the default 512MB is definitely not enough). Also, we're using 32-bit OS only. The important part is to select the .vhd file you extracted from the .rar files as an existing hard drive.

- Do not run the virtual machine yet. It won't work, because it's designed only to work with Microsoft Virtual PC. To make it compatible, click "settings" in VirtualBox to change some things:

- On the system tab, check Enable IO APIC. This is necessary to get your mouse to work (I think).

- On the storage tab, remove your VHD from the "SATA Controller" list. Then add the same VHD file back, only under the "IDE Controller" tab. The VHD is expecting an IDE controller, and you'll get a BSOD if you don't do this step. Under the network tab, change "attached to" from "NAT" to "Bridged Adapter". This is necessary to be able to access a webserver running on your local machine, that is outside of the VM. (You don't need to do this if you just want to access websites in general). Start the Virtual Machine.

- You'll notice the mouse doesn't work. We'll get to that. For now, the Tab key and Alt+Tab are your friends. Log in with either the "IE User" or the "Admin" account. The password is "Password1".

- It will ask you to activate. Ignore for now.

- In VirtualBox, go to the "Devices" menu in your OS menu bar and click "Install Guest Additions...".

- In Windows, launch Explorer somehow. Easiest way is the "run" command (try Windows Key + R) and type "explorer". From within explorer, use Tab and Enter and arrow keys to navigate to the inserted CD. Select the "Autorun" file and hit "Enter" to run it.

- You are now installing guest additions. During the process, you'll need to Alt+Tab to the new prompt window to hit enter every time you need to confirm something.

- Once guest additions is installed, use the start menu to restart the virtual machine. Once it restarts, your mouse should now work inside the virtual machine, hooray!

- It will ask you again to activate. Try to activate online. If it works without asking you for a product number, awesome. If it asks you for a product number, hit cancel, open up a command prompt (run "cmd"), and type the following:

    slmgr -rearm
(If it says you don't have permission, then try logging in under the other account when Windows starts up, if more than one account is listed, e.g. both "Admin" and "Administrator". One of them should work.) This will activate Windows for 30 days, and you can redo this every 30 days. Note: if you don't activate or run this command instead, then Windows will shut itself down after 15 minutes.

- Open up IE. It should be able to browse the Internet. But it will not open up sites on nonstandard ports, so browsing to your own site at something like

    192.168.0.10:8080
will not work. To fix this, go to Internet options, then the Security tab. Click the Trusted Sites icon. Click the Sites button. Uncheck the "Require server verficiation (https:) for all sites in this zone" checkbox. Click Add, then type in the IP address of your...
Awesome guide, thanks a lot!

Since the WinXP is just a single exe file, UnrarX cannot extract it. Any idea to fix this besides extracting it on a Windows computer?

Hackers don't search for easy solutions ;) You can use any hex editor to cut the PE file: just cut from the beginning to the point where the Rar! signature starts and rename the extension to .rar.
Challenge accepted.

Edit: There is no "Rar!" in Windows_XP_IE6.exe :(

That's because it's not a RAR archive :( Windows_7_IE8.part01.exe and Windows_Vista_IE7.part01.exe are RAR archives, but Windows_XP_IE6.exe is not.
It looks like a self-extracting CAB file, 7-zip can open it and maybe some other archivers as well.
Thank you for this. What I wish I could find was a way to buy a low-cost version of Windows to run in VirtualBox on a Mac, not for testing IE, but just to be able to use Windows occasionally.

I'm not sure why MS wants to make buying Windows without a PC so expensive. I suppose they feel that locking us into PC hardware (that won't run MacOS, thanks to Apple's lock-in policies) is the best way to lock us into Windows. For me, someone who uses Mac, Windows, Linux, iOS, and Android for different things, it all just drives me toward a policy of trying to find ways to get by without MS and Apple as much as I reasonably can. A $39 "Windows for VMs" package would keep my foot in the Windows world, but lacking Apple's (current) hardware quality advantage, MS is the easiest to learn to do without entirely.

Windows 7 is free (incl. the Ultimate version, with Aero, etc.), you may use without paying a penny, if you can tolarate: 1) wallpapers regularily replaced with a black "picture" (telling you that your Windows copy needs a proper license) 2) occasional reminders that you better buy a license in form of poop-ups (you can make them show less often setting up tray notifications appropraitely) 3) no update-on-demand (though security updates are provided automatically)

Bonus is the reminder pop ups (which are shownn not often anyway) almost never mess will full-screen videos, and never -- with games (so, if you'd like to have Windows for playing games, this solution is perfect).

You can google for smth like Windows 7 7600 build, download the ISO (from the MSDN or a tracker you trust), install, let it patch itsekf to the latest service pack, install DirectX, codecs, etc -- and enjoy :)

Have you seen the pricing on Windows 8? It's $48 here in Australia (roughly the same in USD) and I believe there's a $40 download-only version too. It sounds like that would suit your needs?
It's my understanding that that's an upgrade price, not a new installation. They're doing it, because so many Windows users are saying they'll keep using Windows 7, an actual computer OS, rather than upgrading to the new "post-PC" Windows 8.

You could be right, and I could be wrong, though....

It would serve the world so much better IF THEY JUST LET IT FUCKING DIE! GRAAAAAAGGHH!

</rant>

the only way early versions of IE would go away is if the computers upgraded themselves.

Even going out of support won't kill them as some people/businesses still won't allow their computers to upgrade IE, or install anything else.

Example: Over the weekend I was at a big chain store and decided to sign up for a discount card (which is done online). The employee pulls up the browser, and it's IE6.

The website we go to, the company's public website, is broken in IE6, yet they still use IE6 on their computers.

If businesses won't upgrade from IE6, even though the tools they make their employees use don't function properly in IE6, I don't think there's anything MS can do about it.

But that's precisely the point - the only thing that can force businesses to upgrade is if the cost of developing, testing and maintaing software for IE6 becomes more than what it costs to do a full overhaul and re-education. Microsoft stepping in to make IE6 support easier and cheaper simply sends the message that it's still a valid choice for development and support.
A while ago I used Windows XP Mode to create VMs with different versions of IE for testing - very easy if you have Windows 7 Pro because XP mode can be duplicated/copied around like any other VM and has automagic licensing provided the host in Windows 7 Pro (if you move the VM to a different type of host it will fail to work)

Obviously this is only good if you're already on windows but that was a huge help for development and didn't take much effort to set up.

You don't need VMs or the sort to test old versions of IE.

Open IE and hit F12, this will open IEs equivalent of Chrome Developer tools. It has options to change which IE engine it uses all the way back to IE7 for testing.

Which gets you close, but not close enough to say "I've testing in IEX." Although the DOM modelling is very close, the CSS and JS quirks between different versions aren't emulated enough in F12 to catch the problems that using the actual version would expose.
xdissent made a great command line installer on github for virtualbox and these virtual machines; you can get them running with one command. I've used the script for the last year or so when I've had to set up a new box for testing and I've really enjoyed it.

https://github.com/xdissent/ievms

I came here to post this; instead I'll mention more features:

- Handles interrupted downloads for you, continues them. - Hilariously, each browser comes in a distinct version of the operating system. Windows 95 for IE7, Windows Vista for IE8, and Windows 7 for IE9. A trip down memory lane! - Debugging for IE7 is not enabled by default on the IE7 image. Thanks, MS ... people mostly use IE8 with IE7 mode turned on, but it is possible to get a full debugger in IE7.

shiver

Now I'm going to go back to pretending those abominations don't exist. Until later next week, when yet another responsive web app needs to be backported to the days of buggy whips ...

Or several gigabytes less and much faster:

http://www.my-debugbar.com/wiki/IETester/HomePage

This tool is not a perfect replica of older browsers. I've enountered JS errors that aren't consistent with genuine IE versions.

It's fine for working out layout quirks, but if you're testing larger websites I wouldn't depend on it.

I've used this, and oddly enough, I've seen issues that only happen in IE7 on XP...IE7 on Vista/7 worked just fine. YMMV.
It works about as well as IE9's browser emulation. Which is not very well. It's not 100% true to native IE versions.
The right thing to do is sometimes just to give it up. People will stop using the old browser, even if that isn't immediate in large companies that can't roll out new versions quickly due to the expense and time involved.

We gave up IE6 as soon as we could.

We use Browersling for testing older versions of IE, runs out of the browser and significantly less painful then VM solutions.
We do most of our testing through cloud-hosted VMs now, like http://browserstack.com and http://saucelabs.com

Sauce also lets you set up selenium/WebDriver testing so you can automate it.

Agreed. Spending hours fiddling around with old VM's to test horrible old browsers sounds depressing.

Saucelabs looks good cheers.

Another alternative is using an application virtualization solution. In that case you can run IE6 directly in Windows 7. It works as a sandbox and you don't nees the whole operating system. My company is providing this technology to Symantec.
Apparently (free) VMWare Player can import VMC/VPC files now for those that prefer VMWare.