It’s no big secret that Microsoft’s Internet Explorer and it’s closely related cousin, Edge, are not the world’s favourite browsers. They’re not even my favourite and for a number of good reasons.
In the battle for market share, Microsoft has pushed Edge upon the users of Windows 10 by giving it default placement, by captioning it as the “recommended” candidate, by resetting defaults occasionally after updates to favour it and by putting pop-ups that remind users that performance and battery life is “better” under Edge. Unfortunately, these reasons are not enough … and their validity is a little questionable.
But for better or worse, we will fire up either IE or Edge just once, to download our favourite browser. Kind of like what this popular comic by “Merryweathery” shows.
I wrote a comic about Internet Explorer pic.twitter.com/puEFc1HD0y
— 「Ｍｅｒｒｙ」🌴 (@Merryweatherey) August 13, 2018
But to do that will lead to a barrage of advertising for the browser. I’d rather avoid confronting IE or Edge altogether.
Putting IE out of business
The problem is that it’s a bit of a chicken and egg issue. How does one get a new browser without using the only supplied browser? Unfortunately, there is always a dependency somewhere – you need at least some prior knowledge to make this happen.
In the old days, you could just fire up a command prompt terminal, open up FTP (which comes included in Windows), connect anonymously to a download server and initiate a transfer of an installer that way. Unfortunately, it seems like FTP mirrors are a bit of a dying breed as FTP is not a particularly secure protocol. Even Mozilla’s ftp.mozilla.org no longer works, which is a shame, as that would have been an “easy” and familiar way to avoid IE-chan all together.
Instead, we must do our downloading through HTTPS. Under Linux, there are always tools available – wget comes as standard. Under Windows, the tools are lesser known and sometimes need to be slightly abused to meet our goals.
You also need some prior knowledge – i.e. where the installer file is located (i.e. its URI). Unfortunately, determining this is not as simple as it could otherwise be, due to the script-heavy nature of the websites and tracking involved nowadays. The URI can also change when versions change, so it’s best to find an official URI that is a “metalink” to the latest version of a given browser.
My favourite browser is Firefox. After some work, I determined the best URI to use is:
This is a metalink that will download the latest stub – this is an installer that then goes to download the newest version and finally install the browser. Unfortunately, trying to determine the same address for Google Chrome led me to understand that they seem to be generating “tracked” unique links with customised binaries to track installs – so no such luck there.
This isn’t particularly easy to remember, so there might be a temptation to shorten it. Unfortunately, the risk of doing that is to introduce a security issue where you might be misled to download another installer and get some malware instead. Best to stick with the proper URI – perhaps print it out, write it down on the installer CD, save it into a text file or download one of the scripts linked later onto your installation medium.
Method 1: Windows PowerShell
For later versions of Windows, PowerShell may be installed and available for use. This seems to provide the neatest way of performing the download, through the Invoke-WebRequest call:
Invoke-WebRequest -OutFile "Firefox Installer.exe" -Uri https://download.mozilla.org/?product=firefox-stub
Running this call will result in a pale-blue PowerShell window appearing for a short while as the file is downloaded, before exiting.
Method 2: Abusing certutil
If you don’t have access to PowerShell, the next best solution seems to be to abuse certutil to act as a downloader. The upside to this is that you don’t need administrative privileges to run – it can be run in a standard command prompt.
certutil -urlcache -split -f "https://download.mozilla.org/?product=firefox-stub" "Firefox Installer.exe"
The downside seems that it doesn’t print much progress status before exiting, but it does the job just fine.
Method 3: Using BITSADMIN
The third method, in case you can’t seem to use certutil, is to use BITSADMIN. This is apparently a depreciated method, but it uses the Background Intelligent Transfer Service (BITS) as used by Windows Update and other services to download the file. BITSADMIN appears to require administrative privileges to operate, otherwise you will get an error 0x80070005.
If you run the command as administrator, it will download the file into C:\ (as it requires a full path).
bitsadmin /transfer GetFirefox /download /priority normal https://download.mozilla.org/?product=firefox-stub "C:\Firefox Installer.exe"
It does show some status during downloading, but it also seems to be slower as it tries not to monopolise bandwidth.
After using one of the above three methods, we are rewarded with our precious stub installer file, which we can then execute and fully install the browser.
If you want to just download the scripts as a ZIP file, you can get them here.
Method 4: Get a Linux Live CD
I’m actually a strong advocate of having a Linux Live CD or USB stick around, as Linux is very useful and can “save your bacon” in many cases. This is equivalent to having a full operating system you can boot as an alternative to Windows. You can use whatever tools and browsers are in your Live CD and use that to download the browser of choice to a storage medium to install under Windows.
It’s like getting a jackhammer to crack a peanut … but it works … and I suspect you can get Chrome this way as well. But seeing as you’ve come so far, maybe it’s time to ditch Windows altogether or at least dual-boot?
As it turns out, through Invoke-WebRequest, abusing certutil or using BITSADMIN, it’s possible to grab an alternative browser without having to fire up IE at all. But this is predicated on a few things – that you have the knowledge of the URI of the installer package and the syntax which is required to make use of the tools.
I’ve written a few simple scripts to do it, which can be saved to your installation media as a convenience – but you could just as easily print out the one-liners for reference. Of course, there are no guarantees that the URI won’t change – if it does, then the scripts will likely stop working … and either you use another computer/OS to find out the new URI or you parse HTML in Notepad with your eyes to try and determine the new URI.
Or … give in and fire up IE once more …