1. The problem
You set a default browser for a link in Windows, and suddenly every link in the system, from Outlook to Telegram, flies into that one browser. Sound familiar?
For me it looked like this. The corporate portal requires Edge with an AD profile, otherwise SSO fails and you’re typing your password for the third time. Personal email and everything else goes in Chrome, because that’s where the extensions, bookmarks, and a sane tab manager live. The banking client runs in a separate “clean” browser with zero extensions, just in case someone’s DevTools poke around in there. and a layout tester needs to open the same URL in four browsers at once from different shortcuts, without picking a browser by hand each time.
Windows can’t do this. The system has exactly one “default browser” slot, shared across every link at once. Want Edge for the corporate portal and Chrome for everything else? You either flip the default browser back and forth every time, or find a workaround.
In this article:
- why Windows’ built-in settings can’t solve this
- how to build the right shortcut by hand through properties, for a one-off case
- what Browser Shortcut Creator is and how it automates the same thing for dozens of links
- separately: what to do with portable browsers that don’t register in the registry
- a straight talk about antivirus false positives on a new exe
- what to do about sites using GOST certificates that a stock Chrome won’t open
Setting up one shortcut manually takes three to five minutes. With the utility, fifteen seconds. Here’s where that difference comes from.
2. Why this happens
Let’s look at why Windows’ built-in tools can’t handle this, and why the usual workarounds are a pain in practice.
| Reason | Why it gets in your way |
|---|---|
| Windows stores a single default browser handler for the entire system | The http/https association in the registry is global, not tied to a specific URL or shortcut |
| A shortcut to a website created the normal way becomes a protocol link | Double-clicking it always goes through the system’s default handler, bypassing any browser choice |
| Manually editing a shortcut’s Target works, but requires knowing the browser’s exe path | The path differs between Chrome/Firefox/Edge versions, and portable builds can be anywhere |
| A .bat file with a launch command works, but spooks non-technical users | A black console window flashes on every click, and antivirus sometimes flags the .bat itself for opening a URL |
| Editing the registry to change the default browser solves a different problem | It changes the browser for the whole system, not for one link |
Portable browsers don’t register in StartMenuInternet |
Automatic scanning won’t find them, the path has to be entered manually |
And then Windows decides, after yet another update, that Edge is the default browser now, no one asked. If you’ve been through that, you know exactly the feeling.
3. The fix
Option 1: by hand, through shortcut properties
Good enough for one link. Nothing to install.
- Create a new shortcut on the desktop: right-click → New → Shortcut.
- In the location field, type the path to the browser’s exe and the URL as a second parameter in quotes.
"C:\Program Files\Google\Chrome\Application\chrome.exe" "https://portal.example.com"
Result: a shortcut that opens this exact URL in Chrome with a double-click, regardless of what browser the system has set as default.
The downside: you need to know the exact exe path, and it can differ per machine. Some people have Chrome in Program Files, others in Program Files (x86), and some run a portable Chrome off a flash drive. Handing this instruction to ten coworkers means explaining ten times where to find the exe.
Option 2: Browser Shortcut Creator
The program does the same thing without the manual path hunting. On launch it scans the Windows registry under HKLM/HKCU\SOFTWARE\Clients\StartMenuInternet and App Paths, and finds every installed browser on its own. All you do is pick one from the list.
Download Browser Shortcut Creator: a single exe around 50 KB, with a built-in icon. Written in C# / .NET Framework, with zero third-party libraries. PyInstaller and similar packers were deliberately avoided, since packed exe files are exactly what triggers the most antivirus false positives. The file creates no config files, writes nothing to the registry beyond reading the browser list, and never touches the network, on launch or during use.
Before you start
- Windows 7 SP1 or newer (7 / 8.1 / 10 / 11)
- .NET Framework 4.5-4.8, already present on Windows 10/11, may need installing on Windows 7
- no administrator rights needed, the program doesn’t write to protected registry areas, only reads
Steps
- Run
BrowserShortcutCreator.exe. No installation needed, it’s portable. - Pick a browser from the auto-detected list, or click “Specify location manually” for a portable build.
- Paste the full link, including
https://. - Name the shortcut, this is what you’ll see on the desktop or in the Start menu.
- Choose a save folder: desktop, a dedicated folder, a network share for distributing to coworkers.
- Click “Create Shortcut”.
Result: a finished .lnk file in the chosen folder. The icon comes from the browser itself, not a generic Windows icon, so the shortcut looks completely native.
Technically, the shortcut is created directly through the native Shell COM API, the IShellLinkW and IPersistFile interfaces, with no WSH wrappers (no WScript.Shell from VBScript) and no third-party libraries. It’s the same API Windows Explorer itself uses when creating shortcuts, so the resulting .lnk is identical to one built by hand.
%%{init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#f8fafc',
'primaryTextColor': '#1e293b',
'primaryBorderColor': '#94a3b8',
'lineColor': '#64748b',
'fontSize': '15px',
'fontFamily': 'ui-sans-serif, system-ui, sans-serif'
},
'flowchart': {'curve': 'linear', 'nodeSpacing': 50, 'rankSpacing': 50}
}}%%
flowchart TD
A["Double-click the shortcut"] --> B["Windows reads the Target from the lnk"]
B --> C["browser.exe launches with the URL parameter"]
C --> D["The site opens in the chosen browser"]
style A fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style B fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style C fill:#f8fafc,stroke:#f97316,stroke-width:2px,color:#9a3412
style D fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
Portable browsers
Chrome Portable, Firefox Portable, and similar builds don’t register themselves in the Windows registry, they live in a single folder and launch directly from the exe. Automatic scanning won’t see them, that’s not a bug, it’s the whole point of a portable build: not touching the system.
For these, the program has a “Specify location manually” mode: just point it at the browser’s exe, then everything else works the same way, link, name, save folder. Useful for testers who keep one portable copy of each browser version, without relying on whatever is actually installed on the machine.
Special case: sites with GOST certificates
A specific headache of the last few years: Russian bank and government services sites that moved to GOST R 34.10-2012 certificates. A stock Chrome or Firefox won’t trust that certificate and throws up a red “connection not private” screen, because the root GOST CA (operated by Russia’s Ministry of Digital Development) isn’t in their trusted certificate stores.
These sites open in Yandex Browser, which accepts GOST certificates out of the box, or in Chromium-GOST, a special build from the Ministry’s CA with the root certificate already baked in. This is exactly where Browser Shortcut Creator solves the problem in one step: the bank’s GOST-certificate site gets its own shortcut pointing to Yandex Browser, while everything else stays in your regular Chrome. No need to flip the default browser every time you need to log into online banking.
4. Verification
After creating a shortcut, check three things: is the path correct, does the right browser actually open, and is the icon intact.
- Right-click the shortcut → Properties → “Shortcut” tab. The “Target” field should show the path to the browser’s exe with the URL as a second argument in quotes.
- Double-click the shortcut. The browser you picked should launch, not whatever the system has set as default.
- Check the address bar in the window that opens, the URL should match exactly what you entered when creating the shortcut, no stray characters or truncation.
If you want to check the .lnk contents programmatically instead of through Properties, PowerShell will pull the target path and arguments in two lines:
$sh = New-Object -ComObject WScript.Shell
$lnk = $sh.CreateShortcut("C:\Users\Admin\Desktop\Portal.lnk")
$lnk.TargetPath
$lnk.Arguments
This should show the browser’s exe path in TargetPath and the URL in Arguments. If TargetPath points to the browser itself rather than some generic “open link” handler, the shortcut is set up correctly.
5. Troubleshooting
| Problem | Cause | Fix |
|---|---|---|
| The shortcut opens the browser but to a blank tab with no URL | The URL didn’t make it into the Arguments parameter, lost during copy-paste | Recreate the shortcut, paste the full link including https://, with no leading whitespace |
| A portable browser isn’t found by auto-scan | Portable builds don’t register themselves in StartMenuInternet |
Use “Specify location manually” and point directly to the exe |
| Antivirus blocks the exe on first run | A new, unsigned file with no reputation in ML-heuristic databases | See the separate section below on antivirus and VirusTotal |
| The shortcut icon is generic, not the browser’s own icon | The Windows icon cache hasn’t refreshed | Restart explorer.exe or clear IconCache.db |
| The shortcut stopped working after a browser update | The exe path changed in a major update (rare, but happens with portable builds) | Recreate the shortcut, auto-scan will pick up the new path |
| A GOST-certificate site still shows “connection not private” | The shortcut points to a regular Chrome/Firefox instead of Yandex Browser or Chromium-GOST | Recreate the shortcut, selecting the GOST-compatible browser from the list this time |
It’s not as bad as the table makes it look. In nine cases out of ten it’s a typo in the link or the wrong browser picked from the list.
6. Alternatives
Here’s what else solves this problem, and why I ended up writing my own tool instead of using something off the shelf.
A manual .bat file
Works fine for one person who wrote it themselves. Bad for handing out to coworkers: a black console window flashes on launch, and some antivirus products get more suspicious of a .bat triggering an exe with a URL parameter than of an .lnk doing the same thing.
Editing the registry to change the default browser
Solves a different problem entirely, changing the default browser for the whole system. Not usable for targeting a single link.
Third-party browser pickers (Browser Chooser, Default Browser Switcher-style tools)
Show a browser-selection dialog every time you click a link. Works, but adds an extra click every single time, exactly the annoyance you were trying to get rid of.
Group Policy (for corporate environments)
GPO can centrally push shortcuts to a network share, or use Group Policy Preferences to drop .lnk files on every domain user’s desktop. Pairs well with Browser Shortcut Creator: generate the shortcuts once, then distribute them through GPO like any other file.
Why I ended up writing my own tool instead of using something existing: none of the above gave automatic detection of installed browsers without manual path entry, while also staying under a few dozen megabytes for a job that needs about fifty kilobytes of code.
7. Keeping it working
- Monitoring: if you’re distributing shortcuts to coworkers centrally, add a check to your workstation update checklist, to confirm shortcuts survived a browser reinstall.
- Browser versions: a major update to a portable build sometimes changes the exe path, recreate shortcuts in manual mode once a quarter if you rely on portable builds heavily.
- Back up your shortcuts: .lnk files only take a few kilobytes, keep your working set in a shared folder or repo so you don’t have to rebuild them after reinstalling Windows.
- Keep the source handy: if you’re using this in an organization with strict security requirements, keep a local copy of the source and know how to rebuild the exe without reaching an external server.
- Autostart: not needed, the program only runs when you’re creating a new shortcut, it doesn’t spawn background processes or ask to be added to startup.
- Updating the exe: check the repo for new releases manually, auto-update is deliberately left out, less code means a smaller surface for “what’s this doing in the background” questions.
A drop of poison can take down a horse. One mistyped URL in a shortcut parameter won’t take down anything, but it will guarantee half a day of “why does this open a banner ad instead of the portal” troubleshooting.
8. Security
A straightforward rundown of what the program does to the system, and what your trust in an unsigned exe is actually based on.
About antivirus and VirusTotal
A new exe with no reputation and no digital signature will almost always pick up one to three false positives from ML and heuristic engines on VirusTotal, something like Trojan:Win32/Wacatac.C!ml from Microsoft Defender or Trojan.Win32.VSX from Trend Micro. That doesn’t mean the file is malicious. It means the file has no track record.
The difference between a signature match and a heuristic flag matters. A signature match means the antivirus found actual known malicious code matching a database sample. A heuristic or ML model works differently: it looks at general traits, a small exe, no digital signature, touches the registry, creates .lnk files, and scores the file as “behaves like something suspicious.” That’s exactly what any shortcut-creation utility looks like to a model, including Windows Explorer itself, if it were rebuilt from scratch and shipped as a standalone exe with no history and no signature.
Building it yourself from source
Compilation goes through csc.exe, the standard compiler that ships with .NET Framework, no need to install Visual Studio or anything else.
build.bat
The script calls csc.exe with an asInvoker manifest (the program never requests elevated privileges) and produces the same exe as the prebuilt release. You can verify this by comparing hashes.
Other safeguards
- The program doesn’t require administrator rights, the
asInvokermanifest means it never asks for elevation. - Creates no config files on disk, nothing to look for and nothing to clean up after removal.
- Doesn’t write to protected registry areas, only reads
StartMenuInternetandApp Pathsto find browsers. - Run the exe from a local folder, not from a shared network location with broad write permissions, standard hygiene for any portable tool, nothing specific to this one.
9. FAQ
Why does the shortcut still open the wrong browser after I set it up?
Usually it’s because the wrong browser was picked from the list during creation, or the shortcut was built manually through properties with a typo in the exe path. Recreate the shortcut using the program and check TargetPath with the PowerShell command from the Verification section.
How do I check that a shortcut is set up correctly?
Right-click → Properties → “Shortcut” tab, look at the “Target” field: it should show the path to the correct browser’s exe with the URL as a second parameter in quotes. Or run the PowerShell command with WScript.Shell from the verification section, it prints TargetPath and Arguments on separate lines.
What do I do if antivirus blocks the exe?
Upload the file to VirusTotal and check whether it’s a signature match or a heuristic/ML flag, the verdict name usually has a marker like .ml or a generic name with no specifics. For heuristic flags on a new unsigned exe, add an exclusion in your antivirus, or rebuild the exe locally from source, which removes any question of trusting someone else’s build.
How is this different from editing a shortcut manually through properties?
The result is identical, both methods create an .lnk with the browser’s exe as the target. The difference is that manual editing requires knowing the exact exe path, while the program finds every installed browser through registry auto-scan and skips that requirement entirely.
Does it work with Yandex Browser and Chromium-GOST?
Yes, both are found through automatic scanning like any regular installed browser that registers itself in StartMenuInternet. No manual mode needed for them, unlike portable builds.
Do I need administrator rights to install it?
No. The program is portable, installs nothing, and runs from any folder without admin rights, including the registry read it performs to find browsers.
10. What you end up with
Once you’ve set up shortcuts through Browser Shortcut Creator, you have a folder, either on your desktop or shared with coworkers, full of links that each open in a predetermined browser, regardless of what the system has set as default. The corporate portal goes to Edge with an AD profile, the GOST-certificate banking site goes to Yandex Browser, and everything else opens in your usual browser without extra switching.
Something built by hand in shortcut properties isn’t afraid of being automated. If something doesn’t open the way it should after setting this up, drop a comment and we’ll sort it out.
Download Browser Shortcut Creator
Browser selection logic for different link types
%%{init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#f8fafc',
'primaryTextColor': '#1e293b',
'primaryBorderColor': '#94a3b8',
'lineColor': '#64748b',
'fontSize': '15px',
'fontFamily': 'ui-sans-serif, system-ui, sans-serif'
},
'flowchart': {'curve': 'linear', 'nodeSpacing': 50, 'rankSpacing': 50}
}}%%
flowchart TD
A["Corporate portal"] --> E["Edge with AD profile"]
B["Banking client with GOST certificate"] --> Y["Yandex Browser"]
C["Personal email, everyday use"] --> G["Work Chrome"]
D["Layout testing"] --> M["4 browsers in parallel"]
style A fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style B fill:#f8fafc,stroke:#f97316,stroke-width:2px,color:#9a3412
style C fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style D fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style E fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style Y fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style G fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style M fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
System requirements
| Parameter | Value |
|---|---|
| OS | Windows 7 SP1, 8.1, 10, 11 |
| .NET Framework | 4.5-4.8 (preinstalled on Windows 10/11) |
| Exe size | ~50 KB, built-in icon, no external dependencies |
| Permissions | User-level, no administrator rights needed |
| Supported browsers | Anything registered in StartMenuInternet: Chrome, Firefox, Edge, Yandex Browser, Chromium-GOST, Opera; portable builds via manual mode |
External sources
- VirusTotal: check an exe for false positives before running it
- Microsoft documentation on IShellLinkW: the interface used to create .lnk files
- .NET Framework download page: if the version isn’t installed on Windows 7
- Gosuslugi portal: GOST certificate instructions: the source of the requirement for Yandex Browser or Chromium-GOST on Russian government sites
Оставайтесь на связи
Рецепты от IT-боли. Без воды, без рекламы, без маркетинговой шелухи.
Подписаться на IT-Аптеку →



