Celeb Glow
news | March 16, 2026

How to automate setting Chrome as default browser in Windows 10

I've tried setting default in the reg keys:

hkeycu>software>microsoft>windows>shell>associations>urlassociations>http and https.

Tried using master_preference file.

Tried using command switch --make-default-browser.

So far these aren't working.

Any help would be appreciated. Open to any to batch files, registry keys, file replacements/edits... basically anything I can automate.

5

12 Answers

Have you tried making a .vbs file to set Chrome as the default browser automatically?

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "%windir%\system32\control.exe /name Microsoft.DefaultPrograms /page pageDefaultProgram\pageAdvancedSettings?pszAppName=google%20chrome"
WScript.Sleep 1200
WshShell.SendKeys "{TAB}"
WshShell.SendKeys " "
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys " "
WScript.Quit

Reference: comment by user "Raz" in Making IE the default browser in Windows 10 during OSD

6

To change default browser in Windows 10 try the tool SetDefaultBrowser – Set the Default Browser per command line or script by Christoph Kolbicz.

The following worked fine for me:

SetDefaultBrowser.exe HKLM "Google Chrome"
2

Here is the PowerShell version of the Judy Li / Raz solution:

function Set-ChromeAsDefaultBrowser { Add-Type -AssemblyName 'System.Windows.Forms' Start-Process $env:windir\system32\control.exe -ArgumentList '/name Microsoft.DefaultPrograms /page pageDefaultProgram\pageAdvancedSettings?pszAppName=google%20chrome' Sleep 2 [System.Windows.Forms.SendKeys]::SendWait("{TAB} {TAB}{TAB} ")
}
1

The answer from Judy Li still worked for me on 2021-01-04 with the latest windows 10 built. However, I had to update the the number of tab's and sleep commands.

The updated steps are:

  1. Create a VBS files with the code below
  2. Open folder shell:startup with [win]+[r] or file explorer
  3. Store the file in the startup folder to execute the script with each restart

VBS Code

Set WshShell = WScript.CreateObject("WScript.Shell")
' Open the default settings window
WshShell.Run "%windir%\system32\control.exe /name Microsoft.DefaultPrograms /page pageDefaultProgram\pageAdvancedSettings?pszAppName=google%20chrome"
WScript.Sleep 5000 ' Wait until open (adjust if necessary)
' Adjust number of tabs until you reach the browser choice setting
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
' Open the browser choice menu
WshShell.SendKeys " "
WScript.Sleep 500 ' Wait until open
WshShell.SendKeys "{TAB}" ' Move down one selection
WshShell.SendKeys " " ' Set current selection as default browser
WScript.Sleep 500 ' Wait until open
' Uncomment the line below to outomatically close the settings window
' WshShell.SendKeys "%{F4}"
WScript.Quit

The old control.exe stopped working for me today. I changed it to ms-settings:defaultapps.

Set WshShell = WScript.CreateObject("WScript.Shell")
' Open the default settings window
WshShell.Run "ms-settings:defaultapps"
WScript.Sleep 5000 ' Wait until open (adjust if necessary)
' Adjust number of tabs until you reach the browser choice setting
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
' Open the browser choice menu
WshShell.SendKeys " "
WScript.Sleep 500 ' Wait until open
WshShell.SendKeys "{TAB}" ' Move down one selection
WshShell.SendKeys " " ' Set current selection as default browser
WScript.Sleep 500 ' Wait until open
' Uncomment the line below to outomatically close the settings window
WshShell.SendKeys "%{F4}"
WScript.Quit
0

The Default Application Associations for all users are stored in the following file:

C:\Windows\System32\OEMDefaultAssociations.xml

Find extensions or protocols that use edge and change them to chrome, for example, you can replace the following associations:

<Association Identifier=".htm" ProgId="MSEdgeHTM" ApplicationName="Microsoft Edge" />
<Association Identifier=".html" ProgId="MSEdgeHTM" ApplicationName="Microsoft Edge" />
<Association Identifier="http" ProgId="MSEdgeHTM" ApplicationName="Microsoft Edge" />
<Association Identifier="https" ProgId="MSEdgeHTM" ApplicationName="Microsoft Edge" />

To open in chrome instead:

<Association Identifier=".htm" ProgId="ChromeHTML" ApplicationName="Google Chrome" />
<Association Identifier=".html" ProgId="ChromeHTML" ApplicationName="Google Chrome" />
<Association Identifier="http" ProgId="ChromeHTML" ApplicationName="Google Chrome" />
<Association Identifier="https" ProgId="ChromeHTML" ApplicationName="Google Chrome" />

You can change whatever associations you'd like, but should leave the rest in place. I have a script that pulls this file down from an S3 bucket and applies it as part of the machine provisioning process.

For example, here's my entire OEMDefaultAssociations.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<DefaultAssociations> <Association Identifier=".3g2" ProgId="WMP11.AssocFile.3G2" ApplicationName="Windows Media Player" /> <Association Identifier=".3gp" ProgId="WMP11.AssocFile.3GP" ApplicationName="Windows Media Player" /> <Association Identifier=".3gp2" ProgId="WMP11.AssocFile.3G2" ApplicationName="Windows Media Player" /> <Association Identifier=".3gpp" ProgId="WMP11.AssocFile.3GP" ApplicationName="Windows Media Player" /> <Association Identifier=".aac" ProgId="WMP11.AssocFile.ADTS" ApplicationName="Windows Media Player" /> <Association Identifier=".adt" ProgId="WMP11.AssocFile.ADTS" ApplicationName="Windows Media Player" /> <Association Identifier=".adts" ProgId="WMP11.AssocFile.ADTS" ApplicationName="Windows Media Player" /> <Association Identifier=".avi" ProgId="WMP11.AssocFile.AVI" ApplicationName="Windows Media Player" /> <Association Identifier=".bmp" ProgId="PBrush" ApplicationName="Paint" /> <Association Identifier=".dib" ProgId="PBrush" ApplicationName="Paint" /> <Association Identifier=".flac" ProgId="WMP11.AssocFile.FLAC" ApplicationName="Windows Media Player" /> <Association Identifier=".gif" ProgId="PBrush" ApplicationName="Paint" /> <Association Identifier=".jfif" ProgId="PBrush" ApplicationName="Paint" /> <Association Identifier=".jpe" ProgId="PBrush" ApplicationName="Paint" /> <Association Identifier=".jpeg" ProgId="PBrush" ApplicationName="Paint" /> <Association Identifier=".jpg" ProgId="PBrush" ApplicationName="Paint" /> <Association Identifier=".m2t" ProgId="WMP11.AssocFile.M2TS" ApplicationName="Windows Media Player" /> <Association Identifier=".m2ts" ProgId="WMP11.AssocFile.M2TS" ApplicationName="Windows Media Player" /> <Association Identifier=".m3u" ProgId="WMP11.AssocFile.m3u" ApplicationName="Windows Media Player" /> <Association Identifier=".m4a" ProgId="WMP11.AssocFile.M4A" ApplicationName="Windows Media Player" /> <Association Identifier=".m4v" ProgId="WMP11.AssocFile.MP4" ApplicationName="Windows Media Player" /> <Association Identifier=".mkv" ProgId="WMP11.AssocFile.MKV" ApplicationName="Windows Media Player" /> <Association Identifier=".mod" ProgId="WMP11.AssocFile.MPEG" ApplicationName="Windows Media Player" /> <Association Identifier=".mov" ProgId="WMP11.AssocFile.MOV" ApplicationName="Windows Media Player" /> <Association Identifier=".MP2" ProgId="WMP11.AssocFile.MP3" ApplicationName="Windows Media Player" /> <Association Identifier=".mp3" ProgId="WMP11.AssocFile.MP3" ApplicationName="Windows Media Player" /> <Association Identifier=".mp4" ProgId="WMP11.AssocFile.MP4" ApplicationName="Windows Media Player" /> <Association Identifier=".mp4v" ProgId="WMP11.AssocFile.MP4" ApplicationName="Windows Media Player" /> <Association Identifier=".mpa" ProgId="WMP11.AssocFile.MPEG" ApplicationName="Windows Media Player" /> <Association Identifier=".MPE" ProgId="WMP11.AssocFile.MPEG" ApplicationName="Windows Media Player" /> <Association Identifier=".mpeg" ProgId="WMP11.AssocFile.MPEG" ApplicationName="Windows Media Player" /> <Association Identifier=".mpg" ProgId="WMP11.AssocFile.MPEG" ApplicationName="Windows Media Player" /> <Association Identifier=".mpv2" ProgId="WMP11.AssocFile.MPEG" ApplicationName="Windows Media Player" /> <Association Identifier=".mts" ProgId="WMP11.AssocFile.M2TS" ApplicationName="Windows Media Player" /> <Association Identifier=".png" ProgId="PBrush" ApplicationName="Paint" /> <Association Identifier=".tif" ProgId="PhotoViewer.FileAssoc.Tiff" ApplicationName="Windows Photo Viewer" /> <Association Identifier=".tiff" ProgId="PhotoViewer.FileAssoc.Tiff" ApplicationName="Windows Photo Viewer" /> <Association Identifier=".TS" ProgId="WMP11.AssocFile.TTS" ApplicationName="Windows Media Player" /> <Association Identifier=".TTS" ProgId="WMP11.AssocFile.TTS" ApplicationName="Windows Media Player" /> <Association Identifier=".txt" ProgId="txtfile" ApplicationName="Notepad" /> <Association Identifier=".url" ProgId="IE.AssocFile.URL" ApplicationName="Internet Browser" /> <Association Identifier=".wav" ProgId="WMP11.AssocFile.WAV" ApplicationName="Windows Media Player" /> <Association Identifier=".website" ProgId="IE.AssocFile.WEBSITE" ApplicationName="Internet Explorer" /> <Association Identifier=".wm" ProgId="WMP11.AssocFile.ASF" ApplicationName="Windows Media Player" /> <Association Identifier=".wma" ProgId="WMP11.AssocFile.WMA" ApplicationName="Windows Media Player" /> <Association Identifier=".wmv" ProgId="WMP11.AssocFile.WMV" ApplicationName="Windows Media Player" /> <Association Identifier=".WPL" ProgId="WMP11.AssocFile.WPL" ApplicationName="Windows Media Player" /> <Association Identifier=".htm" ProgId="ChromeHTML" ApplicationName="Google Chrome" /> <Association Identifier=".html" ProgId="ChromeHTML" ApplicationName="Google Chrome" /> <Association Identifier=".url" ProgId="IE.AssocFile.URL" ApplicationName="Google Chrome" /> <Association Identifier=".webp" ProgId="ChromeHTML" ApplicationName="Google Chrome" /> <Association Identifier="ftp" ProgId="ChromeHTML" ApplicationName="Google Chrome" /> <Association Identifier="http" ProgId="ChromeHTML" ApplicationName="Google Chrome" /> <Association Identifier="https" ProgId="ChromeHTML" ApplicationName="Google Chrome" />
</DefaultAssociations>
2

I modified the script above so that it will only change the default browser and not any of the other settings (mail, pdf, etc.) So this mimics changing the default browser usuing the Default Apps in Windows 10.

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "%windir%\system32\control.exe /name Microsoft.DefaultPrograms /page pageDefaultProgram\pageAdvancedSettings?pszAppName=google%20chrome"
WScript.Sleep 1200
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{DOWN}"
WshShell.SendKeys "{DOWN}"
WshShell.SendKeys " "
WshShell.SendKeys "{DOWN}"
WshShell.SendKeys " "
WshShell.SendKeys "{DOWN}"
WshShell.SendKeys "{DOWN}"
WshShell.SendKeys "{DOWN}"
WshShell.SendKeys "{DOWN}"
WshShell.SendKeys "{DOWN}"
WshShell.SendKeys "{DOWN}"
WshShell.SendKeys "{DOWN}"
WshShell.SendKeys "{DOWN}"
WshShell.SendKeys "{DOWN}"
WshShell.SendKeys " "
WshShell.SendKeys "{DOWN}"
WshShell.SendKeys " "
WshShell.SendKeys "{TAB}"
WshShell.SendKeys " "
WScript.Quit

This is not fully automated but reduces the steps required. Go to Settings, find "Default Apps" and right click on it and choose "Pin to Start". You can then get back to the selection screen in 2 clicks.

Thanks a ton @BenH. You just saved my day.

On Server 2016, I had to use TABENTERTAB instead of TABTABTAB and it is working perfectly fine !

 function Set-ChromeAsDefaultBrowser { Add-Type -AssemblyName 'System.Windows.Forms' Start-Process $env:windir\system32\control.exe -ArgumentList '/name Microsoft.DefaultPrograms /page pageDefaultProgram\pageAdvancedSettings?pszAppName=google%20chrome' Sleep 2 [System.Windows.Forms.SendKeys]::SendWait("{TAB} {ENTER} {TAB}")
}
function Set-DefaultBrowser {
Add-Type -AssemblyName 'System.Windows.Forms'
Start-Process $env:windir\system32\control.exe -LoadUserProfile -Wait -ArgumentList '/name Microsoft.DefaultPrograms /page pageDefaultProgram\pageAdvancedSettings?pszAppName=Firefox-308046B0AF4A39CB'
Sleep 10
[System.Windows.Forms.SendKeys]::SendWait("{TAB}{TAB}{TAB}{TAB}{TAB} {ENTER}{ENTER} ")
}
Set-DefaultBrowser;

Worked for me in GCP Windows 10 image in setting Chrome as default browser.

This works for me (Windows 10 21H2 using Microsoft Edge as default browser which is on top of the list of Web browser apps):

Set WshShell = WScript.CreateObject("WScript.Shell")
' Open the default settings window
WshShell.Run "ms-settings:defaultapps"
WScript.Sleep 1500 ' Wait until open (adjust if necessary)
' Adjust number of tabs until you reach the browser choice setting
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
' Open the browser choice menu
WshShell.SendKeys "{ENTER}"
'WshShell.SendKeys " "
WScript.Sleep 500 ' Wait until open
'WshShell.SendKeys "{TAB}" ' Move down one selection
WshShell.SendKeys " " ' Set current selection as default browser
WScript.Sleep 500 ' Wait until open
' Uncomment the line below to automatically close the settings window
WshShell.SendKeys "%{F4}"
WScript.Quit
1

Take the script from Judy Li’s answer and tweak it.

Option Explicit
Dim oShell, sWinDir
Set oShell = WScript.CreateObject("WScript.Shell")
sWinDir = oShell.ExpandEnvironmentStrings("%WINDIR%")
oShell.Run sWinDir & "\system32\control.exe /name Microsoft.DefaultPrograms /page pageDefaultProgram"
Set oShell = Nothing
WScript.Quit

Save it on your desktop as a .vbs file (e.g., SetDefaultProgams.vbs).  Double clicking it will bring up the more familiar Set Default Programs with the list on the left, like previous versions of Windows 10.

(Of course there are other ways to invoke a program / script.  You could put it on your Start Menu, or run it through CMD or PowerShell.)

This script was tested by me on Windows version 10.0.16299.192.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy