“Registering” a portable browser as the default browser in latest builds of Win 11 (and 10)

As of the latest few builds of Win 10 and 11, M$ has “hardened” browser registration so that a malicious browser can not hijack your default browser association. This makes it nearly impossible to use an actually portable browser (one that is truly portable or nearly truly portable). Portable browsers do not have an install so don’t go through the trusted process of registering a handler type and association.


Steps to reproduce:

  1. Install fresh clean Win 11 (24h2 Oct 2025) in a VM (like virtualbox 7.2.4r170995), do not install a browser.
  2. Using a portable browser package (I use FirefoxPortable 144.0 from portableapps.com) “install” it (unpack).
  3. Attempt any method you like to associate .url, .html, .htm, or “open type https:// link” : There is no way to get around M$ new straitjacket restriction on setting a default browser I can find. Some of these are less hardened than others – *.html for example can easily be associated, but *.url is locked up tight.

->Success will be shown when you can double click an internet shortcut in windows explorer and it opens with the portable browser AND you can click on links in other (non-browser) programs (like discord, online help links, etc) and they open with the portable browser.

I have tried using SetUserFTA, PortableRegistrator, researching online, going through 3 pages of powershell scripts from chatgpt, and nothing actually works reasonably. The only thing I managed to do successfully is 1) break windows update while 2) allowing myself to write to the registry (take ownership of branch and deny ‘system’ and ‘trustedinstaller’ – to prevent windows update from reverting and breaking the association).

Has anyone solved this?

Things I do not want to hear:

“Just install a regular (non-portable) browser” that defeats the whole point in keeping user data clean and isolated from windows cruft. All programs are portable for this use case.

“Use an old version of Windows” – must be supported and have future support going forward.

“Use Linux” – must be M$ Win.

etc.

The need is a current working supported version of M$ windows, with a portable browser, that is the base requirement.