Legen Sie über die Befehlszeile den Internet Explorer als Standardbrowser fest


10

Ist es möglich, Internet Explorer als Standardbrowser für den Start über die Befehlszeile festzulegen?

Ich habe eine Webanwendung, die nur unter Internet Explorer ausgeführt wird. Wenn jedoch Firefox der Standardbrowser ist, funktioniert dies nicht. Benutzer befinden sich in einer Domänenumgebung, und obwohl ich versuche, unsere Anwendung auf folgende Weise aus einem Stapel heraus zu starten:

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

Die Anwendung wird erst gestartet, wenn ich den Browser manuell ändere.


4
Ich nehme an, "die App so zu reparieren, dass sie tatsächlich das richtige HTML berücksichtigt, anstatt unter jedem anständigen Browser zu brechen", ist keine Option?
Shadur

1
@ Shadur Es gibt einige Bereiche, in denen Probleme als Features angesehen werden ..
Joseph Hansen

Sich auf ein fehlerhaftes Verhalten eines einzelnen Browsers zu verlassen, ist keine Funktion oder sollte es zumindest nie sein.
Shadur

@ techie007 ich es nicht selbst nicht getestet , aber Sie können überprüfen hier und hier .
Avirk

Es ist eine schlechte Idee, den IE-Standardbrowser zu erstellen.
Jet

Antworten:


10

Dieser Befehl legt den IE als Standardbrowser fest:

shmgrate.exe OcinstallreinstallIE

Diese Richtlinie sollte verhindern, dass Personen den Standardbrowser bestimmen.


Kein Problem. Ich bin froh, dass es für dich geklappt hat.
Slotishtype

+1 auch für die Police.
MDT Guy

In Windows Vista wurde das Registrierungsschema überarbeitet. Das shmgrateTool ist nur in Windows 2000 / XP und Windows Server 2003 verfügbar. Außerdem verhindert diese Richtlinie nur, dass Internet Explorer überprüft, ob es als Standardbrowser festgelegt ist.
and31415

3

Sie können dies versuchen, es wird funktionieren

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

Der Fehler in Ihrem Befehl bestand darin, dass starterwartet wird , dass die erste Zeichenfolge in Anführungszeichen der Titel der Anwendung ist. In diesem Fall können Sie sie leer lassen.

für die Einstellung iexplorer.exeals Standard - Web - Browser-Systems, können Sie verwenden assocund ftypeBefehle, die assoziierten Erweiterungen mit Dateitypen und Dateitypen mit ausführbaren Dateien, etwa so:

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

%1 ist hier das Argument - das ist die URL oder die Datei, die Sie als Eingabe an das Programm senden können


1
(Nur) Das Zuordnen des vom IE zu öffnenden HTML-Dateityps ist nicht dasselbe wie das Festlegen des Standardbrowsers des Betriebssystems.
Ƭᴇcʜιᴇ007

iexplore.exe, nicht iexplorer.exe
InterLinked

1

Windows Vista und höher, IE 7+

Das folgende Batch-Skript simuliert das Klicken auf Diese Programme als Standard festlegen im Applet der Standardsteuerung. Getestet mit Vista / 7 und 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

Bemerkungen

Jede Webbrowser-Anwendung kann sich registrieren, um im Startmenü als Internet-Client angezeigt zu werden. Diese Sichtbarkeit in Verbindung mit der ordnungsgemäßen Registrierung der Datei- und Protokolltypen einer Anwendung verleiht einer Anwendung den Standardbrowserstatus. Der Standard-Webbrowser wird zum Starten beliebiger URLs von überall im System verwendet.

Hinweis Bestehende [Startmenü-Link] -Registrierungen werden in Windows 7 und höher ignoriert. Diese Registrierung ist ab Windows 7 veraltet.

Quelle: So registrieren Sie einen Internetbrowser oder E-Mail-Client über das Windows-Startmenü

­­

Die hierarchische Registrierungsstruktur für Datei- und Protokollzuordnungen hat Vorrang vor den Standardeinstellungen pro Benutzer gegenüber den Standardeinstellungen auf Maschinenebene.

Quelle: Standardprogramme


Setzt den IE unter Windows 8.1 nicht als Standard für mich zurück. :(
Ƭᴇcʜιᴇ007

@ techie007 Was ist mit den Standardeinstellungen für Programme in der Systemsteuerung? Hat sich dort etwas geändert? Haben Sie beim Ausführen des Batch-Skripts Fehler erhalten?
and31415

Scheint unter Windows 7 (Pro, 64-Bit) zu funktionieren, aber unter Windows 8 (Pro 32-Bit) wird nur die (gleiche / übliche) Ausgabe "Der Vorgang wurde erfolgreich abgeschlossen" angezeigt. -- "Drücken Sie eine beliebige Taste, um fortzufahren . . ." Legt den IE jedoch nicht als Standard fest.
Ƭᴇcʜιᴇ007

Unter meinem anderen Windows 8-Computer hat es etwas besser funktioniert. Ich führe es aus und frage mich beim nächsten Öffnen eines http-Links, welchen Browser ich verwenden möchte. Dies ist gut genug für mich, da alle anderen Teile (AFAICT) zu glauben scheinen, dass der IE danach als Standard registriert ist. Also mein Kopfgeld. :)
10cʜιᴇ007

@ techie007 Ich habe völlig vergessen, dass Microsoft die Regeln geändert hat, und jetzt gibt es einen Manipulationsschutz für die meisten dieser Registrierungsschlüssel. Wenn Sie bereit sind, es zu testen, kann ich Ihnen eine aktualisierte Version des Skripts senden, mit der die Zuordnung in Windows 8 und höher gelöscht wird, sodass Sie beim nächsten Öffnen eines Links oder einer HTML-Datei von Windows auswählen können, welches Browser zu verwenden. Das ist wahrscheinlich das Beste, was Sie auf automatisierte Weise erreichen können, da ohnehin (einige) Benutzerinteraktionen erforderlich wären.
and31415

1

Sie können unten zwei Zeilen in eine Bat-Datei einfügen

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

Starten Sie nach dem Ausführen des Fledermaus neu / melden Sie sich ab und wieder ab, da über zwei Befehlszeilen die Registrierungswerte geändert werden sollen.

Weitere Details finden Sie hier

(Behoben) - Internet Explorer kann nicht als Standardbrowser festgelegt werden! http://www.windowstechinfo.com/2016/03/fixed-cant-set-internet-explorer-as-the-default-browser.html



0

Lassen Sie einfach die Taste fallen start, damit der Befehl oder die Batchdatei funktioniert.

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

1
Wir suchen (naja, ich bin es sowieso) nach Lösungen zum Festlegen des Standardbrowsers über die Befehlszeile, nicht nur um das Beispielproblem / den Grund im OP zu lösen.
8cʜιᴇ007

-1

Für Windows 8 (IE 10+) ist es ein einfaches VBS-Skript:

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

Es wird die IE-Seite zum Ändern des IE als Standard gestartet und das Klicken auf die Schaltfläche zum Akzeptieren simuliert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.