无法从 Powershell 将 Chrome 设置为默认浏览器 [英] Can't set Chrome as default browser from Powershell
问题描述
我正在运行以下 powershell 命令
I'm running the following powershell commmand
$chromePath = "${Env:ProgramFiles(x86)}\Google\Chrome\Application\"
$chromeApp = "chrome.exe"
$chromeCommandArgs = @('--make-default-browser')
Invoke-Expression "cmd.exe /C `"$chromePath$chromeApp`" $chromeCommandArgs"
不幸的是,当我运行它时,我收到以下错误消息.
Unfortunatley, when I run this, I get the following error message.
cmd.exe : [1396:2128:0708/153347:ERROR:gpu_info_collector_win.cc(98)] 无法检索有效的 WinSAT 评估.在行:1 字符:1+ cmd.exe/C "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --make- ...+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo : NotSpecified: ([1396:2128:0708...SAT 评估.:String) [], RemoteException+ FullQualifiedErrorId : NativeCommandError
cmd.exe : [1396:2128:0708/153347:ERROR:gpu_info_collector_win.cc(98)] Can't retrieve a valid WinSAT assessment. At line:1 char:1 + cmd.exe /C "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --make- ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: ([1396:2128:0708...SAT assessment.:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError
[1396:2128:0708/153347:ERROR:shell_integration_win.cc(200)] Chrome 无法设置为默认浏览器.
[1396:2128:0708/153347:ERROR:shell_integration_win.cc(200)] Chrome could not be set as default browser.
可能导致此错误的原因是什么?我意识到有多种执行命令的方法,但最重要的是使用 --make-default-browser
开关执行 Chrome 失败.
What could be causing this error? I realize there are various ways of executing the command, but the bottom line is that executing Chrome with the --make-default-browser
switch is failing.
推荐答案
试试这个位于 poshcode 的链接,其中您可以在 Chrome、Firefox、Internet Explorer、Opera 和 Safari 之间切换.我已经在所有 5 个浏览器的版本上进行了测试...
Try this link at poshcode, with which you can switch between Chrome, Firefox, Internet Explorer, Opera and Safari. I've tested with all 5 browsers on versions...
- 铬 = 39
- 火狐 = 34
- Internet Explorer = 11
- 歌剧 = 11
- Safari = 5
PoShCode 片段中的代码如下...
The code within the PoShCode snippet is below...
function Set-DefaultBrowser
{
param($defaultBrowser)
$regKey = "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\{0}\UserChoice"
$regKeyFtp = $regKey -f 'ftp'
$regKeyHttp = $regKey -f 'http'
$regKeyHttps = $regKey -f 'https'
switch -Regex ($defaultBrowser.ToLower())
{
# Internet Explorer
'ie|internet|explorer' {
Set-ItemProperty $regKeyFtp -name ProgId IE.FTP
Set-ItemProperty $regKeyHttp -name ProgId IE.HTTP
Set-ItemProperty $regKeyHttps -name ProgId IE.HTTPS
break
}
# Firefox
'ff|firefox' {
Set-ItemProperty $regKeyFtp -name ProgId FirefoxURL
Set-ItemProperty $regKeyHttp -name ProgId FirefoxURL
Set-ItemProperty $regKeyHttps -name ProgId FirefoxURL
break
}
# Google Chrome
'cr|google|chrome' {
Set-ItemProperty $regKeyFtp -name ProgId ChromeHTML
Set-ItemProperty $regKeyHttp -name ProgId ChromeHTML
Set-ItemProperty $regKeyHttps -name ProgId ChromeHTML
break
}
# Safari
'sa*|apple' {
Set-ItemProperty $regKeyFtp -name ProgId SafariURL
Set-ItemProperty $regKeyHttp -name ProgId SafariURL
Set-ItemProperty $regKeyHttps -name ProgId SafariURL
break
}
# Opera
'op*' {
Set-ItemProperty $regKeyFtp -name ProgId Opera.Protocol
Set-ItemProperty $regKeyHttp -name ProgId Opera.Protocol
Set-ItemProperty $regKeyHttps -name ProgId Opera.Protocol
break
}
}
# thanks to http://newoldthing.wordpress.com/2007/03/23/how-does-your-browsers-know-that-its-not-the-default-browser/
<#
(Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\ftp\UserChoice').ProgId
(Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice').ProgId
(Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice').ProgId
#>
}
# Set-DefaultBrowser cr
# Set-DefaultBrowser ff
# Set-DefaultBrowser ie
# Set-DefaultBrowser op
# Set-DefaultBrowser sa
这篇关于无法从 Powershell 将 Chrome 设置为默认浏览器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!