PowerShell helper for setting Browser Tamer as the default browser on Windows 10/11 when Windows refuses to let the change stick.
The script handles the current Windows default-app protection layers, including UCPD, UserChoiceLatest-related feature flags, valid hash-based file association writes via PS-SFTA, Browser Tamer registry registration, Browser Tamer picker configuration, phantom browser cleanup, and full uninstall/cleanup.
It is designed to be re-runnable. If Windows Update or a Browser Tamer update breaks the association again, run the script again.
Important: run this as a normal user, not as Administrator. The script will request elevation only for the steps that need it. Running the whole script elevated can break the per-user default-browser association writes.
Modern Windows does not make programmatic default-browser changes easy. A working Browser Tamer setup now requires several coordinated fixes.
This tool can:
- Install or upgrade Browser Tamer via
winget. - Let you choose between the latest Browser Tamer version and the previous known version,
5.5.5. - Correctly handle the
5.5.5downgrade path by removing the currently installed Browser Tamer package first, becausewinget install --version 5.5.5will not reliably downgrade over a newer installed version. - Clean stale WinGet package folders and the
WinGet\Links\bt.exesymlink before reinstalling an older Browser Tamer version. - Locate
bt.exeusing the stable WinGet links path where possible, with fallback discovery for package folders. - Register Browser Tamer as a virtual browser in the current user's registry.
- Create or repair the Browser Tamer ProgIds used by Windows default-app associations:
BrowserTamerHTMBrowserTamerPDFx-bt
- Repair incomplete third-party
StartMenuInternetregistrations that can cause Browser Tamer to discover phantom/broken browsers. - Configure Browser Tamer's
config.iniso the browser picker remains usable instead of immediately closing or behaving inconsistently. - Disable the UCPD protection layer by setting the UCPD service state and disabling the
UCPD velocityscheduled task. - Run ViVeTool elevated only for the feature-flag step and disable these Windows feature IDs:
44860385— classic UCPD default-app protection43229420— UserChoiceLatest / AppDefaultHashRotation27623730— UserChoiceLatest hash migration companion flag
- Download and load PS-SFTA in the normal user session.
- Set Browser Tamer as default for:
httphttps.htm.html.shtml.xht.xhtml.mht.mhtml.pdf
- Back up relevant registry state before changing associations.
- Verify the written associations after the change.
- Check for UserChoiceLatest mismatches and warn when a reboot/re-run may be needed.
- Verify Browser Tamer ProgId command integrity after PS-SFTA writes and attempt re-registration if needed.
- Fully uninstall Browser Tamer and the script's registry/file changes when requested.
- Windows 10 or Windows 11
- PowerShell 5.1 or later
winget/ App Installer- Internet access
- A normal, non-elevated PowerShell or Command Prompt session
The script downloads:
Downloads are stored under:
%LOCALAPPDATA%\BrowserTamer-Fix
Browser Tamer configuration is stored under:
%LOCALAPPDATA%\bt\config.ini
fix-browsertamer/
├─ README.md
└─ fix-browsertamer/
├─ fix-browsertamer.bat
└─ fix-browsertamer.ps1
Run the commands from the inner fix-browsertamer folder where the .bat and .ps1 files are located.
The easiest option is the batch wrapper:
cd fix-browsertamer
fix-browsertamer.batThe wrapper opens a menu with:
- Install / fix in manual mode
- Install / fix in semi-automatic mode
- Fully uninstall Browser Tamer
- Fully uninstall Browser Tamer without confirmation
- Quit
From the folder containing fix-browsertamer.ps1:
# Show the interactive menu
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\fix-browsertamer.ps1
# Manual mode: pauses at major steps so you can read the output
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\fix-browsertamer.ps1 -Manual
# Semi-automatic mode: fewer pauses, but still prompts where user interaction is unavoidable
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\fix-browsertamer.ps1 -SemiAuto
# Full uninstall with confirmation
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\fix-browsertamer.ps1 -Uninstall
# Full uninstall without confirmation
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\fix-browsertamer.ps1 -Uninstall -SemiAutoIn manual mode, the script asks which Browser Tamer version to install:
L Latest (Current Latest)
P Previous 5.5.5
Choose L for the latest version published through WinGet.
Choose P to install Browser Tamer 5.5.5.
When 5.5.5 is selected, the script first performs an app-only Browser Tamer removal. This is intentional. WinGet does not reliably downgrade an installed package when a newer version is already present, so the script removes the current package and stale WinGet paths first, then installs the pinned version.
This downgrade cleanup does not remove your Browser Tamer configuration, default-browser registration, PS-SFTA files, ViVeTool files, or the script working directory. The normal repair flow then refreshes the registry and associations against the newly installed bt.exe path.
The uninstall mode removes Browser Tamer and the script's changes as completely as practical.
It can remove:
- running
bt.exeprocesses - the Browser Tamer WinGet package
- leftover Browser Tamer package folders
- stale WinGet
bt.exelinks - Browser Tamer ProgIds under
HKCU\Software\Classes - Browser Tamer's
StartMenuInternetregistration - the Browser Tamer value under
HKCU\Software\RegisteredApplications - Browser Tamer
UserChoice/UserChoiceLatestentries for protocols and file types where they still point to Browser Tamer - Browser Tamer startup entry added by the script
%LOCALAPPDATA%\bt%LOCALAPPDATA%\BrowserTamer-Fix- selected
HKLM\SOFTWARE\aloneguidleftovers via a self-elevated cleanup step
After uninstalling, Windows may prompt you to choose a browser the next time you open a link. You can also set one manually in:
Settings > Apps > Default apps
- Do not run the script from an elevated PowerShell or elevated Command Prompt.
- The script self-elevates only the UCPD and ViVeTool steps.
- PS-SFTA association writes must happen in the normal user context.
- Some Windows changes may require a reboot, especially if UCPD was still loaded or UserChoiceLatest was active.
- Windows updates may re-enable protections or reset feature flags. Re-run the script if Browser Tamer stops intercepting links.
- The script stores registry backups under
%LOCALAPPDATA%\BrowserTamer-Fix\reg-backup. - The script includes SHA-256 verification hooks for downloaded components, but empty hash constants mean verification is skipped with a warning until hashes are filled in.
.svgand.webpare intentionally not assigned to Browser Tamer because they are image formats and many users prefer them to open in an image viewer/editor.
Install or update App Installer from the Microsoft Store, then run the script again.
Reboot and run the script again. This is usually needed when UCPD or UserChoiceLatest changes were made but Windows has not fully applied them yet.
The script fires a shell association refresh, but Windows Settings can lag behind. Sign out and back in if the UI still looks stale after a successful run.
Run the repair again. The script scans StartMenuInternet entries and patches incomplete registrations that can cause Browser Tamer to discover a phantom browser.
Use the current script version. The 5.5.5 path now uninstalls the current Browser Tamer package first, removes stale WinGet package/link leftovers, and then installs the pinned version.
- Fixed installation of the previous Browser Tamer version,
5.5.5. - Selecting the previous version now removes the currently installed Browser Tamer package before installing
5.5.5. - Added cleanup for stale WinGet Browser Tamer package folders and the
WinGet\Links\bt.exesymlink before reinstalling the pinned older version. - Preserves Browser Tamer configuration and the normal association repair flow during the downgrade path.
- Added full uninstall mode.
- Added batch wrapper menu support for install/fix and uninstall workflows.
- Added interactive script menu when no PowerShell parameters are provided.
This script modifies registry keys, changes Windows default-app associations, disables a Windows protection driver, disables internal Windows feature flags, and uses third-party tools.
Use it only if you understand what it is doing. There is no warranty. You run it at your own risk.
For background and explanation, read the full guide:
Fixing Browser Tamer issues in Windows
Released under The Unlicense.