从命令行将Internet Explorer设置为默认浏览器


9

是否可以将Internet Explorer设置为从命令行启动的默认浏览器?

我有一个只能在Internet Explorer下运行的Web应用程序,但如果它发生Firefox是默认浏览器,则它不起作用。用户在域环境中,即使我尝试以这种方式从批处理启动我们的应用程序:

start "C:\Program Files\Internet Explorer\iexplore.exe" http://server_ip/home_page

除非我手动更改浏览器,否则应用程序无法启动。


4
我想“修复应用程序,以便它实际上尊重正确的HTML而不是破坏每个体面的浏览器”不是一个选项?
Shadur

1
@Shadur有些领域的问题被视为特征..
Joseph Hansen

依赖于特定于单个浏览器的破坏行为不是,或者至少不应该是一个功能。
Shadur

@ techie007我自己没有测试,但你可以看看 这里 这里
avirk

制作IE默认浏览器是一个坏主意。
Jet

Answers:


10

此命令将IE设置为默认浏览器:

shmgrate.exe OcinstallreinstallIE

这个政策 应该阻止人们确定默认浏览器。


没有问题。很高兴它为你效劳。
slotishtype

该政策也是+1。
MDT Guy

在Windows Vista中,注册方案进行了彻底检查。该 shmgrate 该工具仅适用于Windows 2000 / XP和Windows Server 2003.此外,该策略只会阻止Internet Explorer检查它是否设置为默认浏览器。
and31415

3

你可以试试这个,它会起作用

start "" "C:\Program Files\Internet Explorer\iexplore.exe" http://server_ip/home_page

你的命令中的错误就是这样 start 期望第一个引用的字符串是应用程序的标题,在这种情况下,您可以留空。

用于设置 iexplorer.exe 作为系统的默认Web浏览器,您可以使用 assocftype 命令,它将扩展名与文件类型相关联,文件类型与可执行文件相关联,如下所示:

assoc .html=htmlfile
ftype htmlfile="C:\Program Files\Internet Explorer\iexplore.exe" %1

%1 是这里的参数 - 这是您可以作为输入发送到程序的URL或文件


1
(仅)关联要由IE打开的HTML文件类型与将其设置为操作系统的默认浏览器不同。
Ƭᴇcʜιᴇ007

iexplore.exe,而不是iexplorer.exe
InterLinked

1

Windows Vista及更高版本,IE 7+

以下批处理脚本模拟单击 将此程序设置为默认程序 从默认程序控制面板小程序。使用Vista / 7和IE 7 / IE 11进行测试。

@echo off
setlocal enabledelayedexpansion

REM -- check XHTML support (IE 9+)
set xhtml=0
for /f %%G in ('"reg query "HKCR\IE.AssocFile.XHT" /ve 2>&1 | findstr /c:".XHT" "') do set xhtml=1

REM -- reset file extensions
set exts=HTM,HTML
if %xhtml% == 1 (set exts=%exts%,XHT,XHTML)

for %%G in (%exts%) do (
set ext=%%G
set ext=!ext:~0,3!
reg add "HKCU\Software\Classes\.%%G" /ve /t REG_SZ /d "IE.AssocFile.!ext!" /f >nul
)

set exts=%exts%,MHT,MHTML,URL
set acl=%temp%\acl_%random%%random%.txt

for %%G in (%exts%) do (
set key=HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.%%G\UserChoice
echo !key! [1 7 17]>"%acl%"
regini "%acl%" >nul
set ext=%%G
set ext=!ext:~0,3!
reg add "!key!" /v "Progid" /t REG_SZ /d "IE.AssocFile.!ext!" /f >nul
)
del "%acl%" 2>nul

REM -- reset MIME associations
for %%G in (message/rfc822,text/html) do (
set key=HKCU\Software\Microsoft\Windows\Shell\Associations\MIMEAssociations\%%G\UserChoice
reg add "!key!" /v "Progid" /t REG_SZ /d "IE.%%G" /f >nul
)

REM -- reset URL protocols
for %%A in (FTP,HTTP,HTTPS) do (
set key=HKCU\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\%%A\UserChoice
reg add "!key!" /v "Progid" /t REG_SZ /d "IE.%%A" /f >nul
for %%B in (DefaultIcon,shell) do (
set key=HKCU\Software\Classes\%%A
reg delete "!key!\%%B" /f >nul 2>&1
reg copy "HKCR\IE.%%A\%%B" "!key!\%%B" /s /f >nul
reg add "!key!" /v "EditFlags" /t REG_DWORD /d 2 /f >nul
reg add "!key!" /v "URL Protocol" /t REG_SZ /d "" /f >nul
))

REM -- reset the start menu Internet link (Vista and earlier)
reg add "HKCU\Software\Clients\StartMenuInternet" /ve /t REG_SZ /d "IEXPLORE.EXE" /f

REM -- reset cached icons
if %xhtml% == 1 (
ie4uinit -cleariconcache
) else (
taskkill /im explorer.exe /f >nul
start explorer
)

pause
exit /b

备注

任何Web浏览器应用程序都可以注册以在“开始”菜单上显示为Internet客户端。这种可见性,以及应用程序的正确注册 文件 协议 types,给出应用程序默认浏览器状态。默认Web浏览器用于从系统中的任何位置启动任意URL。

注意 在Windows 7及更高版本中,将忽略现有的[开始菜单链接]注册。自Windows 7起,此注册已弃用。

资源: 如何使用Windows“开始”菜单注册Internet浏览器或电子邮件客户端

文件和协议关联的分层注册表结构优先于每个用户的默认值而非机器级默认值。

资源: 默认程序


在Windows 8.1上,不会将IE重置为我的默认设置。 :(
Ƭᴇcʜιᴇ007

@ techie007控制面板中的默认程序设置怎么样?那里有什么改变吗?执行批处理脚本时是否出现任何错误?
and31415

似乎在Windows 7(Pro,64位)下工作,但在Windows 8(Pro 32位)下,它只显示(相同/通常)输出“操作成功完成”。 - “按任意键继续 。 。 。”但实际上并没有将IE设置为默认值。
Ƭᴇcʜιᴇ007

在我的其他Windows 8机器下,它运行得更好一些。我运行它,然后下次打开http链接时,它会询问我要使用哪个浏览器。这对我来说已经足够了,因为其他的点点滴滴(AFAICT)都认为IE在注册后被默认注册为默认值。有我的恩惠。 :)
Ƭᴇcʜιᴇ007

@ techie007我完全忘了微软有 改变了规则 现在对大多数注册表项都有防篡改保护。如果您愿意测试它,我可以发送一个更新版本的脚本,它只是清除Windows 8及更高版本中的关联,以便下次打开链接或html文件时,Windows会让您选择浏览器使用。这可能是您以自动方式实现的最佳方式,因为无论如何都需要(某些)用户交互。
and31415

1

您可以在bat文件中添加以下两行

reg add "HKCU\Software\Microsoft\Internet Explorer\Main" /f /v "Check_Associations" /d "yes" /t REG_SZ

reg add "HKCU\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice" /f /v "ProgId" /d "IE.HTTP" /t REG_SZ

运行bat后,重新启动/注销并重新登录,因为上面两个命令行是为了更改注册表值。

其他详细信息可以在这里找到

(已修复)-Cant将Internet Explorer设置为默认浏览器! http://www.windowstechinfo.com/2016/03/fixed-cant-set-internet-explorer-as-the-default-browser.html



0

放下吧 start 使命令或批处理文件工作。

"C:\Program Files\Internet Explorer\iexplore.exe" http://server_ip/home_page

1
我们(好吧 我是 无论如何)寻找从命令行设置默认浏览器的解决方案,而不仅仅是解决OP中的示例问题/原因。
Ƭᴇcʜιᴇ007

0

对于Windows 8(IE 10+),它很简单的VBS脚本:

Dim URL 
Dim IE 
Set IE = CreateObject("internetexplorer.application")
URL = "res://ieframe.dll/defaultbrowser.htm" 
IE.Visible = True
IE.Navigate URL


 Do While IE.Busy
    WScript.Sleep 100
 Loop

IE.Document.getElementById("changeDefaultButton").Click

它将启动IE页面以将IE更改为默认值,并模拟单击按钮以接受。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.