SetDefaultBrowser – Set the Default Browser per command line or script

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 like the Filetypes). the only difference is, that Microsoft also checks the path of the Browser (and hashes it too). for that reason i decided to create a separate tool to make it as simple as possible.

newer windows builds don’t need the path of the browser anymore and therefore the hash changed too – but i have updated my tool to support all possible combinations:

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

if you want to know more about the technical details (how the hash is calculated), please read my previous blog.

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 browser of your choice as parameter.

SetDefaultBrowser.exe browser optional:group

i support five browsers at the moment. if there is a request, i might add more in the future (i did only test with actual versions available – November 2017). of course you need the browser installed (on local machine, not user). checks for the existence of the browsers are limited and the tool will change the registry, even if a browser like is not present (like edge on Server 2016 or LTSB).

it will even find the browser when it is not installed at the default path. Firefox was a pain to implement, because it uses three different types of file handlers (x86, x64 and something that  i call legacy). i tried to make it as dynamic as possible to support all possible versions. if you find one that doesn’t work, please let me know.

following browsers are supported:

  • chrome
  • firefox (shortcut ff)
  • iexplore (shortcut ie)
  • edge
  • opera

Example:

SetDefaultBrowser.exe ff

this will set firefox as default browser for the current user.

SetDefaultBrowser.exe firefox “Firefox Users”

will set the default browser to firefox if the user is member of the “Firefox Users” group. if the group contains a space, you must supply quotes. you can supply the group with the domain name like DOMAIN\Groupname or in UPN format like groupname@domain.tld.

the easiest way in an enterprise environment is to use the Group Policy Logon Script feature, just like in this screenshot (you need loopback mode activated, when deploying to computers):

additional info

if you still see this screen after you used SetDefaultBrowser:

then you most likely installed a new browser and not all needed registry keys are present. just make sure that

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\ApplicationAssociationToasts

contains all filetypes of the browser you just installed!

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

SHA256 .zip 417D86D5F6741DEB6C5926A1ABCB47E1496B4311E74142F6FC1893F10C266AD9
SHA256 .exe 087641E8DF31AC98AE3E064DB1351A32F4A6629CFC13A5BEEB7E79565878BADE

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

want to offer me a beer? please use one of the following options:

BTC: 1G7HETp7j5dq422mTg1VNB1yph9m3eKgX1
LTC: LdmnKE7SnKAzKPrs6MrrPFXskuP1qRVBcD
ETH: 0x89c83770e89ae08e856EE239e477BC758FCf3Bf8
XMR: 47y7gzD2DmjSBhKyaxQ2C7RUpLgwzr2hYGu2Ui6NcAi2feChfVR99nhBvJPQxPqhEpRfuy9pAr5ypghETPWQ3MQGCdYSK3u
PayPal: https://www.paypal.me/Kolbicz

Thank you!

64 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