Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Free VMs of Windows to test older versions of IE (microsoft.com)
328 points by Hawkee on Nov 15, 2012 | hide | past | favorite | 118 comments


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/


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.


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: 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.


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.


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.


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.


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?


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.


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.


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.


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.


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.


Interesting. Is there a similar option for VMWare, or is the format too different?


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)


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.


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.


Yes it's just such a pity that the virtual pc images are so massive.


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.


This is the most sane part of all IE testing I've done. Love it.


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.


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.


It's easier to pirate Windows than use these images.


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.


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.


Still better than having to buy a copy of Windows.


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 machine (for example

    http://192.168.0.10
). Click Close. Then, with the Trusted Sites icon still selected, change the security level for this zone to the lowest possible setting. Now, browsing non-standard ports like 8080 should work.

- If you find yourself Cmd+Tabbing between the Virtual Machine and the rest of your programs, you may find that every time you Cmd+Tab back to the Virtual Machine, it opens up the windows menu. This can get real annoying real fast, because it removes focus from whatever you were working on. You can disable the "Windows key" inside of the VM from this Microsoft webpage:http://support.microsoft.com/kb/216893 Obviously, this will disable any windows key shortcuts, but that's probably fine. Remember, normal shortcuts like Ctrl+V etc use the Ctrl key on the Mac keyboard, not the Cmd key.


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?


The Unarchiver works for me: http://unarchiver.c3.cx/unarchiver


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.


p7Zip?


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.


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....


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.


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.


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.


Or better yet, just use https://browserling.com/ which is from another HN member, pkrumins.


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.


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.


No per-minute plan, but Saucelabs gives you 30 minutes per month for free. $12/month for unlimited. It works great. https://saucelabs.com/docs/manual


These images have been available since at least summer 2008:

http://weblogs.asp.net/mschwarz/archive/2008/08/30/internet-...


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 ...


The windows versions you mention are not right. It's WindowsXP-IE6, WindowsVista-IE7, Windows7-IE8/9

https://github.com/xdissent/ievms/blob/master/ievms.sh#L150


These images work directly on vmware fusion btw.

the converter is built into the application.


what about parallels? (arstechnica recommends it)


Bear in mind they're time limited. If you're running Windows 7 you can use multiple instances of "XP Mode" (basically Virtual PC + a VHD image you can download from MS) to run all versions of IE http://blog.dotsmart.net/2009/06/24/using-windows-7s-xp-mode...


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.


Why use this instead of the setup that I use for years?: a WinXP virtual machine and this IEs collection: http://www.askvg.com/how-to-run-multiple-internet-explorer-v... - you end up with one VM and IE 3 - 8.

...and since I use Win7 for work I was tempted to try http://www.my-debugbar.com/wiki/IETester/HomePage but ended up using my old solution out of fear of messy installs/unistalls that such software could do on my "clean" work OS though I'm curious if anyone tried it as it still seems more comfortable and I'd switch to it if I could...


In the past (about four years ago) we had a difficult to debug issue which only manifested in IE on one team member's computer - we traced it down to Multiple IE screwing up cookie handling in some odd manner. So you'd be testing with an environment that's not necessarily 100% the same as your end users.


Yes, I have also seen peculiarities with Multiple IE. IMO, it's decent for casual testing, but you still need to do testing on real installations of your target platforms.


...nice to know such things can happen ...but I've never been bitten by it so far :)


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...


"Windows XP Image:

Expires: This image will shutdown and become completely unusable on February 14, 2013."


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.


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.


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.


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.


Or several gigabytes less and much faster:

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


I'm fairly sure IETester is not a 100% accurate representation. Although saying that, I have used it before and it certainly is more convenient. I suppose it depends on how important the compatibility of your site is on the older IE versions.

http://stackoverflow.com/questions/5612170/web-testing-for-i...


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.


It works about as well as IE9's browser emulation. Which is not very well. It's not 100% true to native IE versions.


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.



IETester is a great idea, unfortunately it's extremely unstable.


Note that these images can still expire after 30 days (or 90 days with "rearm").


Why not just create a snapshot and restore that every time the software complains?


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).


This is awesome. Anyone have a pointer to Win2003 Server (ie7)? We have a bunch of folks there with a hard-to-knockdown bug not showing up elsewhere. Our solution so far has been to say: Upgrade the OS.


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.



Do someone use http://spoon.net/ and have some thought to share?

It seems to be far more easy to setup, but I don't fully understand how it works.


From the title I thought they were hosting VMs that you could RPC into to test your site. That would be quite cool (not that I need it at the moment though).


Apparently (free) VMWare Player can import VMC/VPC files now for those that prefer VMWare.


or http://crossbrowsertesting.com

I am a founder so I am biased. :)


Lot more expensive than browserstack. Any reason?


This doesn't mesh well with http://www.ie6countdown.com/


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: