我正在编写一个脚本,将默认浏览器更改为 Microsoft Edge,我已经这样做了:
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=MSEdgeHTM'
Sleep 10
[System.Windows.Forms.SendKeys]::SendWait("{TAB}{TAB}{TAB}{TAB}{TAB} {ENTER}{ENTER} ")
}
Set-DefaultBrowser
但我不喜欢像一个人打开菜单一样,我想做的事情而不像那样显示,可以这样做吗?
我的建议是设置控制默认浏览器的注册表键。这是一篇帖子的链接,展示了如何使用 Chrome 进行此操作
https://itectec.com/superuser/cmd-command-to-set-chrome-as-default-browser-windows-10/
您会注意到所需的命令,但将应用程序名称更改为 Edge 的名称
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice' -Name ProgId -Value 'ChromeHTML'
Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice' -Name ProgId -Value 'ChromeHTML'
$DefaultBrowserReg = @{
'HTTP' = 'HKCU:\SOFTWARE\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice'
'HTTPS' = 'HKCU:\SOFTWARE\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice'
}
ForEach ($key in $DefaultBrowserReg.Keys) {
$progid = (get-ItemProperty -Path $DefaultBrowserReg.$key).ProgId
if ($progid -ne 'MSEdgeHTM') {
write-host "Default browser for $key is: $progid. Updating to MSEdge"
Set-ItemProperty -Path $DefaultBrowserReg.$key -Name ProgId -Value 'MSEdgeHTM' -whatif
} else {
write-host "Default browser for $key is: $progid"
}
}