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.
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:
available shortcuts are: chrome, ie, iexplore, edge and edgelegacy. 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.
I have some new information: when I adjust the logon script it changes the browser and the setting is not getting adjusted. However when I remove the profile from the server it does not set the default browser.
For my comment JANUARY 30, 2018 AT 11:45 AM: I mean that for the first time login the script is not working.
However if I do not remove the profile from the server and I logout and login again your .exe is working.
In our situation users login/logout on different servers. So every first time will result in not setting the default browser. What is your advice?
Sorry Christoph, both options are NOT working. I assumed the default browser through GPO was working but it is not. So neither way it is setting the default browser (also not by changing the registry through GPO as provided in =483).
However this is not the solution I want to set-up. Do you have any idea how I can trigger the cause of the SetDefaultBrowser.exe setting in the registry to be resetted? It is explorer.exe with the operation RegSetValue to change the ProgId to AppXq0fevzme2pys62n3e0fbqa7peapykr8v.
The user logs in for the very first time and the SetDefaultBrowser sets the right value in ProgId.
Global association takes over and changes the value of ProgId equal to the xml pushed through the GPO. -us/internet-explorer/ie11-deploy-guide/set-the-default-browser-using-group-policy
The user logs in and the SetDefaultBrowser sets the right value in ProgId. Within a second the Global association is set through the GPO and stays like that. No three changes occur this time in the registry.
this sounds like some timing issue. maybe you can implement a delay in your loginscript? what about putting SetDefaultBrowser in the Startup folder? this is one of the latest things that gets executed.
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.)
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 ??
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?
that should be possible aswell yeah, but if this gets overwritten you most likely have a appassoc.xml in place. which profile solution are you using? and on which operating system are you working? Server 2016?
Sorry, I am pretty much a newbie at this. Here is what I am needing: I would like to create a GPO that runs SetDefaultBrowser.exe upon logon for each user, and I would like the .exe to always default to setting Chrome. How can I accomplish this? I love the tool that you built and it is working flawlessly when done manually, but I need to push it out to a few hundred laptops and thin-clients. I know I need to make a logon script and put the .exe on a server/share that all users can access, but I am having trouble with making the script choose chrome without intervention and pointing it correctly. Thank you!
So it looks like it might have been a fluke when I got it working before. Whenever I run the SetDefaultBrowser now to ServerFTA, this is after login, manually run on the server they have landed on in the context of their user, it just gives the user the popup screen asking them to choose their default browser, which would be the same effect if I had deleted or altered the http/https entry under:
then run the SetDefaultBrowser program as the user, the values are added back, but with a different Hash and as soon as an attempt is made by the user to launch a url using the browser from within the Citrix session, ALL entries under the UserChoice key are deleted for the link I launched eg. In my case , however this redirected to https so the http key was untouched and only the https key was wiped and the user is prompted to choose a default browser. At which point they can choose Citrix MetaFrame HTML, which recreates the data, again with different hashes and the user is then able to redirect to their local browser. This however, does not persist between sessions and on login is set back to IE.HTTP and IE.HTTPS.
if you want to roam these settings, you must use Citrix UPM or a similar profile solution. its important that you can roam the NTUSER.DAT file completely. you can not export/import these keys manually, because it will change the hash.
yeah i know why this doesnt work. you have to supply the group name with the group= prefix. this has changed in the newest version of SetDefaultBrowser, since i added additional command line parameters.
I am using this exe as part of the MDT to upgrade Win 7 64-bit to Win 10 64-bit in-place upgrade. This task is part of the Post-Processing and below is the command used.
SetDefaultBrowser.exe HKLM IEXPLORE.EXE
I am trying the application on a Windows 2019 RDS Farm. When starting the application I get a pop-up with the question to look for an App in the Microsoft Store, additionally the message tells me I have to install an app for this task.
what i forgot to mention is that its a citrix terminal server with server with windows 2012 R2 , the hash is always the same when i use windows or ur programm, its always 2 different keys which stay the same each. can i use the protable guide for prgrams that i want to make available for all users?
on 2012 R2 the hash will be the same. this behaviour only changed with Server 2016 or Windows 10 and newer. you can not set http or https with SetUserFTA on Server 2012 R2. you must use SetDefaultBrowser. you can use my guide for the portable browser and instead of HKEY_CURRENT_USER you can use HKEY_LOCAL_MACHINE and then it will be available for all users (not portable therefore). which command did you run with SetUserFTA? it should give an error for http and https on Server 2012 R2.
ok i guess i figured it out i read ur portable article and saw that there is no %1 after \Clients\StartMenuInternet\..Browsername..\shell\open @path Now it seems to work, iwill try with my program to and give feedback. It would be nice if u could add a parameter to ignore Fileasscosiations in my case i dont need or even dont want them to be asscociated with that program.
hello i have a question so right now i tried running setdefaultbrowser.exe using GPO logon script and the startup folder but it doesnt work and the exe itself doesnt run it just saw a second of the cmd window then closes ik theres something i need to do and its probably stupid but can u help me
it runs also as SYSTEM, but it will write everything in the profile of SYSTEM and that is not what you want. you cannot set associations with a service account or SYSTEM. my tools must be run in the current user context. this is because it uses the SID of the user that is logged on. that is by design from Microsoft. you can not use it to apply associations to a machine. if you want that, you can use the official solution from Microsoft using this method: -us/windows-hardware/manufacture/desktop/export-or-import-default-application-associations
I used that to observe the behavior of the application under that context and could see that it was executing (i.e. not a permission issue) and had concluded by then that I needed to figure out how to run it against an actual user.
you could register the x86 version as an additional browser in the registry, just like you would do with a portable browser. i have a blogpost about how to do that: -a-portable-browser-and-make-it-the-default/
Microsoft does remove Legacy Edge as soon you install the Edge Chromium from the list of available browsers, thats why i made SetDefaultBrowser like this too. If you are on 1703 or higher, you can use SetUserFTA to have both. I dont think there is really a need of that possibility?
Hi Christoph, I am trying to set the Chromium Edge as a standard browser with setdefaultBrowser-EDGE Version.
Nevertheless the error comes: could not find edge.
I use the current stable version Microsoft Edge 79.0.309.71
Sadly the version 1.4 does not work correctly on Windows Server 2012 R2 Terminalserver with MSEdge Chromium. I use the command line SetDefaultBrowser.exe edge
I can see, that under the key HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice the ProgId is set to MSEdgeHTM and a Hash is generated. But when i try start a dialog box appears. When i choose the Edge entry, the Hash is rewritten.
It is working with SetDefaultBrowser.exe iexplore
Do you have any idea? Many thanks for your help and your work!