SetDefaultBrowser – Set the Default Browser per command line or script

UPDATE 24.10.2018 – Version 1.3 is completely coded from scratch. New features: Supports ALL Browsers (any installed Browser, portable Browsers, App-V Browsers, AppData Browsers, etc.), start delay option added, full Unicode support, includes EULA.

UPDATE 16.12.2017 – Version 1.2 now supports Windows 8/8.1 and Server 2012/R2.

UPDATE 10.12.2017running Windows 1703 and newer, you can now use my SetUserFTA utility to change the default browser. Just make sure you set .htm. html, http and https properly. 

if you are into XenApp, RDS or VDI, then you probably know how difficult it is to configure the environment properly for the enduser nowadays. in my latest blog article, i showed you how to configure File Type Associations per User. based on this previous work i have created a utility that can do the same for the Default Browser.

the story behind is pretty much the same, but to set a Browser, additional Registry Keys are needed (they are protected with the hash just like the file types). the only difference is, that Microsoft also checks the path of the Browser – on certain Windows builds. for that reason i decided to create a separate tool to make it as simple as possible.

newer windows builds don’t check the path of the browser anymore and therefore the hash changed too – but i have updated my tool to support following operating systems:

  • Windows 10 x86/x64 Build 1607, 1703, 1709, 1803, 1809
  • Server 2016 Build 1607
  • Server 2019 Build 1809
  • Windows 8 and 8.1
  • Server 2012 and 2012 R2

if you want to know more about the technical details, please read my previous blog post.

how to use

its really simple. just run SetDefaultBrowser.exe in the user context (there is a list of possible ways in my previous blog) with the the hive and browser of your choice. Since the version 1.3 there are more parameters and it might look complicated, but it gives you actually much more flexibility. Just run SetDefaultBrowser without parameters to get a list of all available browsers:

as you can see, i have a ton of Browsers on my system and using the following examples i can change the default Browser:

  • SetDefaultBrowser.exe HKLM Firefox-308046B0AF4A39CB
  • this will set the x64 Firefox as my default
  • SetDefaultBrowser HKCU “Google Chrome.HEYY3KJOYOAJOPVCHWOFAPMTPI”
  • this will set the Chrome that is only installed in my AppData as my default
  • SetDefaultBrowser.exe HKLM Edge delay=1000
  • this will set Edge as my default browser, but will wait 1 second until it executes. delay must be provided in milliseconds.
  • SetDefaultBrowser.exe HKLM IEXPLORE.EXE group=IE_Users
  • this will set IE as my default Browser, if i am member of the IE_Users group

i hope these examples explain the possibilities and parameters clearly. if a browser identifier contains a space, you must use quotes – for example “Google Chrome”. the same applies to group names (but you also can use Domain\Group or group@yourdomain.tld).

to maintain limited compatibility with the older versions of SetDefaultBrowser, i have added shortcuts to the most used Browsers

  • SetDefaultBrowser.exe chrome
  • this will set Chrome as my default Browser, when its available in HKLM
  • SetDefaultBrowser.exe ie delay=2000
  • this will set Internet Explorer as my default Browser but delays two seconds before
  • SetDefaultBrowser edge group=EdgeUsers
  • this will make Edge the default if the user is member of the EdgeUsers group

available shortcuts are: chrome, ie, iexplore and edge. i had to skip Firefox, since you can have multiple Firefox installations (for example x64 and x86, like on the screenshot above) and using the hive and browser parameter, you can better specify which one you want to set as default.

SetDefaultBrowser will also find the browser when it is not installed at the default path.

the easiest way in an enterprise environment is to use the Group Policy Logon Script feature (you need loopback mode activated, when deploying to computers) – but there are many other ways (check the SetUserFTA blog for more ideas).

IMPORTANT: a portable Browser must be registered in the registry first to work with SetDefaultBrowser. I will write a blog article about how to do that soon.

additional info

if you still see this screen after you used SetDefaultBrowser:

then try this registry key (needs an explorer.exe restart or just a re-login):

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Explorer]
“NoNewAppAlert”=dword:00000001

this registry key also works with HKEY_CURRENT_USER!

or enable the GPO Do not show the ‘new application installed’ notification (Windows Components, File Explorer).

bugs? requests?

if you find a bug or have a special request, you can send me an email to bugs@ mydomain (the one in the browser address bar).

download

download SetDefaultBrowser v1.3 here. SHA265 hashes below.

.exe:CE49E5864A15CE0ADF99A93C6923E9AE34E5EC2C906EB5E6588D433364576C23
.zip:7AA596EFEF5635589DA4CEBA36DFA9555DEAB6DF5093BE109B1CA5EEF6C63681

Version 1.0 – first public version
Version 1.0.1 – additional Firefox detection
Version 1.1 – now working on Windows 1703 and 1709, opera support added
Version 1.2 – support for Windows 8.x and Server 2012/R2 added
Version 1.3 – support for ALL Browsers, delayed start, full Unicode, EULA

keep the project and this blog alive – please consider donating:

if you prefer cryptocurrencies, please contact me for the details.

Thank you!

66 Comments

  1. great tool – one question though is there a way to force the browser and then not have Windows ask if I am sure I want to use my new default browser the first time I open it? (basically auto check the box)

    • my tool is supposed to do exactly that. if it doesnt work, the machine is in an inconsistent state. this can happen when you install additional browsers – ive seen that during my testing. if you use the *reset to the microsoft recommended defaults” button in the settings app, it should fix that and SetDefaultBrowser works as expected. which OS are you on and which browser are you trying to set as default?

    • i found out that this happens sometimes after you install a new browser, because HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\ApplicationAssociationToasts does not contain all needed registry keys. if you want to automate this, just select once your desired browser in the Microsoft popup dialog and then export the created associations (for example ChromeHTML_http, ChromeHTML_https, etc.)

  2. Seems to work after a new profile was created – thanks 🙂

    Just need to now get Defender and other AV solutions not delete any of your tools ! As they get auto removed without exceptions – looks like they all contain issues ?

  3. Great program, only issue I have is that when you set chrome as the default browser in windows 10 with this utility it also sets chrome as the default for .pdf files , is there an option to supress that ??

    • on which build is that? actually SetDefaultBrowser does not change anything related to PDF – it changes only .htm, .html, http and https handlers.

      but you could run “SetUserFTA .pdf AcroExch.Document.DC” after SetDefaultBrowser to make Acrobat Reader the default app for .pdf’s for example.

      • it’s windows 10 1607, doesn’t happen to all users either , this particular one logs into chrome with a google account.
        I ended up using the SetUSerFTA as you mentioned in the reply and that seems to work .

  4. Could you add Vivaldi to your list of supported browsers? It launches from C:\Program Files (x86)\Vivaldi\Application\vivaldi.exe and is a chrome based browser.

  5. In the SetUserFTA post, you stated that if one wants to change the Mailto protocol on windows 10 1607 build to use this SetDefaultbrowser.exe. Is there a way to just set the mailto protocol to a non browser. example default mailto is set to Mail (Windows Mail), but if using outlook 2016. you had mentioned about creating a single exe that would just change MailTo. is that ready for prime time?

  6. I really love this little gem of a program!! Thank you very much for it!! One request though… When setting Chrome as the default browser, it also sets pdf files to be opened by Chrome too. Can this be changed to not change my default pdf associations?

    • i dont know why this happens, but other people reported it aswell. my app does not touch the .pdf extension at all, this must be caused by a previous configuration in the registry. but you can simply run SetUserFTA after the SetDefaultBrowser to assign the .pdf filetype to whatever you want – instead of chrome.

3 Trackbacks / Pingbacks

  1. EUC Weekly Digest – November 11, 2017 – Carl Stalhood
  2. Dateiendungen automatisiert unter Windows 10 mit den gewünschten Applikationen verknüpfen ← Gunnar Haslinger
  3. SetDefaultBrowser – Set the Default Browser per command line or script – Bienvenue sur la KBelliot ;)

Leave a Reply