Wie kann ich eine Benutzeragentenzeichenfolge in IE11 blockieren?

12063
Tyler

Wir beginnen mit dem Upgrade unserer Laptops auf den Windows 8-Touchscreen, und wir stellen fest, dass einige ältere Websites (von denen wir keine ändern können) den Touchscreen als mobiles Gerät erkennen und die Website nicht ordnungsgemäß laden. Wir verwenden IE11 im Desktop-Modus.

Gibt es eine Möglichkeit, die Benutzerstrings, die wir an die Webserver übergeben, zu ändern?

5
[This] (http://www.howtogeek.com/howto/18450/) kann relevant sein, obwohl es für IE8 ist. Doktoro Reichard vor 10 Jahren 1
Welche Version von IE11 verwenden Sie? Die moderne UI-Touchscreen-Version oder Desktop-Vollversion? Ihre Optionen hängen von Ihrer Antwort ab. Ramhound vor 10 Jahren 2
Desktop-Version Tyler vor 10 Jahren 0
@Tyler - Dies bedeutet, dass Sie eine IE-Erweiterung verwenden können, um den Benutzeragenten zu ändern. Möglicherweise möchten Sie auch die Funktion "Kompatibilitätsansicht" ausprobieren. Am Ende müssen Sie möglicherweise einen anderen Browser verwenden, wenn eine Erweiterung nicht zum Ändern des Benutzeragenten verwendet werden kann und die Website nicht geändert werden kann. Ramhound vor 10 Jahren 1
Das Problem ist, dass die Website nur mit IE funktioniert. Und jetzt, wo der neue IE sich ändert, ist es ein Benutzerstring. Ich denke, wir haben wirklich ein Problem. Vielen Dank. Tyler vor 10 Jahren 0

3 Antworten auf die Frage

4
Rik

Das Problem mit UAPick von Bayden Systems und der Methode, IE11s eigene "Development Tools" mit F12, Ctrl+ zu verwenden 8, besteht darin User Agent String, dass diese Einstellungen einen Neustart von IE11 nicht überstehen.

Ich habe einige Tests mit dem Ändern der Werte in der Registrierung von den bereits bereitgestellten Links @harrymc durchgeführt.

Zuerst das ändern, HKEY_LOCAL_MACHINEaber das hat hier nicht gedauert.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent

Allerdings HKEY_CURRENT_USERfunktionierte der Wechsel . (ist aber benutzerspezifisch)
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent

Zunächst das Ergebnis ohne Änderungen: (Ergebnis von myip.nl )
Dies gilt für Windows 8.1 64bit mit IE11 v11.0.9600.16384.

User agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko  Browser: Unknow browser.  

Ich habe IE9.regfolgendes mit gemacht:

REGEDIT4  [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent] @="Mozilla/5.0" "Compatible"="compatible" "Platform"="Windows NT 6.1" "Version"="MSIE 9.0" 

Dies ändert Ihre "User Agent-Zeichenfolge" vollständig. Nach der Ausführung bekam ich:

User agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko  Browser: Internet explorer 9.0  

Dies würde aber auch Ihre "Plattform" verändern. Ich würde das weglassen. (Sie können auch "Mozilla" auf der Standardeinstellung belassen.)

Wenn Ihre Webseiten nur suchen MSIE, reicht es aus, nur die Version-Informationen zu ändern . Platformund "Mozilla" kann unberührt bleiben, so dass Websites es immer noch richtig erkennen können. Ich habe auch den Compatible-Tag hinzugefügt . Vielleicht wird das auch verwendet.

REGEDIT4  [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent] "Compatible"="compatible" "Version"="MSIE 9.0" 

Das führt zu:

User agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko  Browser: Internet explorer 9.0  

Die von den Development Tools ( F12, Ctrl+ 8, User Agent String) angegebene Zeichenfolge für IE9 lautet:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)

Dies scheint dem Original am nächsten zu sein und bietet die Möglichkeit, es als IE9-kompatibel zu identifizieren.

Ich weiß nicht, was genau in Ihrer "User Agent-Zeichenfolge" dazu führt, dass Ihre Websites eine mobile Ansicht "geben" (Sie haben Ihre UA nicht angegeben), aber wenn Sie mit diesen Werten arbeiten, sollte dies behoben werden und diese Einstellungen überstehen einen Neustart von IE11 und der PC.


Edit :
Also das Problem ist das Touchin:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/7.0; Touch; LCJB; rv:11.0)

IE gibt Ihnen nicht die Möglichkeit, die von ihm hinzugefügten Teile zu ändern (oder zu entfernen). Wir können Compatible, Platform, Version ändern und Pre- und Post Platform-Token hinzufügen. (obwohl Version IE11 nicht mehr gesendet wird und Pre und Post Platform nicht im Header gesendet werden.)

Sie könnten versuchen, den Kompatibilitätsmodus einzustellen, um zu sehen, dass er Touchnoch vorhanden ist. (Haben Sie das schon probiert?) Wenn dies funktioniert, können Sie die problematischen Sites zur Liste hinzufügen, sodass sie immer im Kompatibilitätsmodus angezeigt werden.

Wenn der IE weiterhin auf dem Senden besteht, können TouchSie versuchen, den UA mit einem erweiterten Plattformschlüssel zu verwalten.

REGEDIT4  [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent] @="Mozilla/5.0" "Platform"="Windows NT 6.1; Trident/7.0; rv:11.0) // (" 

Auf diese Weise wäre Ihre UA
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/7.0; rv:11.0) // (; Trident/7.0; Touch; LCJB; rv:11.0)
und hoffentlich hat die Website mehr Probleme, Touchzwischen dem ersten (und dem ersten zu finden ).

Wenn dies nicht funktioniert, wäre die einzige Option ein Add-On, das den UA überschreiben würde (wie UAPick, der aber nach Neustarts dauerhaft ist).


Bearbeiten Sie # 2 :

Eine andere Option gefunden. Wenn die Site die gesamte UA durchsucht, wird sie gefunden Touch. Mit dem folgenden Code wird der Platform-Teil der UA mit einem Zeilenvorschub manipuliert, damit er definitiv nicht gefunden wird: (Ich habe diese Lösung hier gefunden )

Machen Sie eine notouch.vbsDatei mit folgendem Inhalt:

Dim oShell set oShell = CreateObject("WScript.Shell") oShell.RegWrite "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Platform", "Windows NT 6.1; Trident/7.0; rv:11.0)" & vbLf & "IGNORE: (", "REG_SZ" Set oShell = Nothing 

(beachte den Teil & vbLf & "IGNORE:)

Nach Ausführung der .vbs hat der Plattformteil einen Zeilenvorschub und danach eine IGNORE-Leitung. Es wird in den Kopfzeilen so aussehen:

User agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/7.0; rv:11.0) IGNORE: (Windows NT 6.1; Trident/7.0; Touch; LCJB; rv:11.0) 

Sehen Sie ... nicht mehr Touchin der User Agent-Zeile;)
(es ist ein Hack, aber hey ... es funktioniert)

Sie haben gut überprüft, ob meine Antwort funktioniert. harrymc vor 10 Jahren 1
@ harrymc Ja, ich hätte sie gleich erwähnen sollen, aber da Sie nicht sicher waren, ob es auf seiner Plattform zutrifft, dachte ich, lassen Sie es uns versuchen. Rik vor 10 Jahren 1
Nun, nachdem ich Ihre Antwort gelesen habe, bin ich mir sicher, dass ich meine Antwort geändert habe, um zu sagen, dass sie durch Ihre Experimente bestätigt wurde. harrymc vor 10 Jahren 1
Mozilla / 5.0 (kompatibel; MSIE 9.0; Windows NT 6.1; Trident / 7.0; Touch; LCJB; rv: 11.0) Touch; ist das, was die Sites in den mobilen Modus versetzt. Irgendwelche Ideen, wie man das blockiert? Tyler vor 9 Jahren 0
@Tyler Sie haben nach der Änderung der "User Agent-Zeichenfolge" gefragt. Meine Antwort zeigte, wie das geht. Ändert es immer noch Probleme (z. B. eine mobile Website)? Wenn die Site auf das Wort "Touch" reagiert, sollte nach meiner Antwort das Wort in der Benutzeragentenzeichenfolge entfernt werden und die Site wird nicht mehr als "mobil" gekennzeichnet. Rik vor 9 Jahren 0
@Rik, richtig. Ihre Methode ändert Teile der Zeichenfolge, jedoch berühren Sie; noch ist bestanden. Mozilla / 5.0 (kompatibel; MSIE 9.0; Windows NT 6.1; Trident / 7.0; Touch; LCJB; rv: 11.0) wie Gecko Tyler vor 9 Jahren 0
@ Tyler Aaah, ich verstehe. Könnten Sie in der Registrierung unter "HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ 5.0 \ User Agent" und möglichen Unterschlüsseln (Pre / Post Platform) manuell nachsehen, wenn "Touch" erwähnt wird. Siehe auch [hier] (http://msdn.microsoft.com/de-de/library/ms537503 (v = vs.85) .aspx). Wenn nicht, versuchen Sie auch, HKEY_LOCAL_MACHINE unter demselben Pfad für den Wert zu überprüfen. Rik vor 9 Jahren 0
@Tyler Edit ... Ich denke (wenn nichts in der Registry gesetzt ist) werden die Standardwerte übernommen. Sie können (und haben) die Plattform, die Kompatibilität usw. geändert. Was Sie jedoch ändern möchten, ist der dahinterliegende Teil (Trident usw.). Ich werde versuchen, herauszufinden, wie dieser Teil überschrieben werden kann. Rik vor 9 Jahren 0
@Tyler Ich habe am Ende meiner Antwort ein Edit hinzugefügt. Außerdem ... Haben Sie den Kompatibilitätsmodus bereits getestet? (Sie können der Liste Sites hinzufügen, um dauerhafte Kompatibilität zu gewährleisten.) Andernfalls versuchen Sie, den UA mit dem Platform-Key wie in meiner Bearbeitung beschrieben zu manipulieren. Rik vor 9 Jahren 1
@Tyler Ich habe einen zweiten Edit (# 2) hinzugefügt. Dazu muss im Plattformteil ein Zeilenvorschub hinzugefügt werden. Auf diese Weise wird alles dahinter in einer zweiten (IGNIORE:) - Linie enden. Das sollte für Sie funktionieren. Beim Testen hier könnte ich alles im User Agent ändern. Hoffe es hilft dir ... Rik vor 9 Jahren 0
2
harrymc

Sind Sie sicher, dass die Benutzer-Agent-Zeichenfolge das Problem verursacht?

Wenn Sie sich nicht sicher sind, können Sie Fiddler2 verwenden, um die URL-Anforderung zusammen mit allen Kopfzeilen nachzuverfolgen und zu erfassen. Außerdem können Sie im Composer mit Crafting-Änderungen an dieser URL-Anforderung experimentieren, um zu sehen, wie sich dies auf die Website auswirkt.

Der Microsoft-Artikel Grundlegendes zu Benutzeragentenzeichenfolgen im Abschnitt Registrierungsschlüssel für Benutzeragenten besagt, dass bestimmte Teile der Benutzeragentenzeichenfolge in IE11 über den Registrierungsschlüssel HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agentwie folgt geändert werden können:

HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER) SOFTWARE Microsoft Windows CurrentVersion Internet Settings 5.0 User Agent (default) = "Mozilla/4.0" Compatible = "compatible" Platform = "Windows NT 5.1" Version = "MSIE 6.0" Pre Platform Token = Value Post Platform Token = Value 

Der Artikel sagt:

Der Standardwert des Benutzeragentenschlüssels ersetzt den in der Benutzeragentenzeichenfolge angegebenen Anwendungsnamen und Anwendungsversionstoken. Beachten Sie, dass die ersten sieben Zeichen für den Anwendungsnamen verwendet werden und die übrigen Zeichen das Anwendungsversion-Token angeben.

Die Werte für "Kompatibel", "Plattform" und "Version" ersetzen die entsprechenden Token in der Benutzeragentenzeichenfolge.

Zusätzliche Token können zur Benutzeragentenzeichenfolge hinzugefügt werden, indem mit dem Registrierungseditor neue Zeichenfolgenwerte unter dem Schlüssel Pre-Platform oder Post-Platform-Schlüssel erstellt werden. Der Wertname sollte das vollständige Token sein. Die Wertdaten werden ignoriert. Dem Pre-Platform-Schlüssel hinzugefügte Token werden vor dem Plattform-Token in der endgültigen Benutzer-Agent-Zeichenfolge angezeigt. Dem Post-Platform-Schlüssel hinzugefügte Token werden nach dem Plattform-Token in der endgültigen Benutzeragentenzeichenfolge angezeigt. Mehrere Token im Pre-Platform-Schlüssel oder Post-Platform-Schlüssel werden in unvorhersehbarer Reihenfolge angezeigt.

Einige Experimente von @Rik haben gezeigt, dass das Obige für Ihre Plattform funktionieren sollte. Sie können experimentieren, um diese Werte zu ändern, um Ihren Browser zu verbergen, um zu sehen, ob dies das Verhalten dieser Website ändert.

Ja, indem Sie IE9 emulieren oder mit USPick festlegen, dass IE9 das Problem behebt, bis der IE neu gestartet wird. Grundsätzlich ist es das "touch" -UA-Fragment, das dazu führt, dass die Site im "mobilen Modus" bedient wird. Tyler vor 10 Jahren 0
@ Tyler: Dieses Update funktioniert auch dann, wenn der IE erneut gestartet wird, da er sich in der Registrierung befindet. harrymc vor 10 Jahren 0
Weitere Möglichkeiten: (1) Versuchen Sie [diese Methode] (http://www.door2windows.com/how-to-change-internet-explorer-user-agent-string-in-all-versions-of-internet-explorer- ohne ein beliebiges Werkzeug /) mit dem Local Policy Editor. (2) Sie können den kostenlosen [UAPick] (http://www.enhanceie.com/ietoys/uapick.asp) ausprobieren. Vorbehalt: Funktioniert nur im Desktop-Modus und erfordert die Deaktivierung des erweiterten geschützten Modus. harrymc vor 10 Jahren 0
Methode 2 wird bereits in den Kommentaren (und meiner Antwort) erwähnt und überlebt keinen Neustart von IE11. (Es funktioniert genauso wie das Entwicklungstool (F12), das auch einen Neustart nicht übersteht.) Methode 1 ist interessant. Sie könnten "MSIE 9.0" zu Ihrer normalen Benutzeragentenzeichenfolge hinzufügen (am Ende). Wenn die Site nur das Vorhandensein von "MSIE" in der Zeichenfolge testet, wird sie möglicherweise die richtige Site liefern. Dies muss mit den Websites getestet werden, für die diese Frage gestellt wurde. Rik vor 10 Jahren 0
@Rik: Entschuldigung, dass ich UAPick nicht erwähnt habe. Für die Local Policy Editor-Methode warte ich auf ein Wort aus dem Poster, ob es meiner Antwort hinzugefügt werden soll. harrymc vor 10 Jahren 0
1
tumchaaditya

Ich meine, du meinst Windows 8.1.
Wenn dies der Fall ist, hat MS die Benutzeragentenzeichenfolge für IE11 in Windows 8.1 geändert, wodurch alte Websites den PC als mobiles Gerät erkennen, selbst für meinen Laptop ohne Touchscreen. Es gibt eine Lösung, eigentlich eine Abhilfe. Holen Sie sich Chrome / FF und installieren Sie ein Addon für Benutzer-Agent-Umschalter. Dann "FAKE" einen alten Browser (Meine persönliche Empfehlung IE8), um alte Websites zu laden.

Das ist vielleicht nicht der beste Weg, aber ich bin sicher, es ist der einfachste.

Nur um meine $ 0,02 hinzuzufügen: Ja, das funktioniert mit vielen Websites. Aber es hängt von der Site ab, die behauptet "Ich arbeite nur mit IE", mit der sie bedeuten "Ich arbeite auch mit anderen Browsern, aber ich werde nur mit IE getestet und wenn Sie meinen anderen Namen zeigen, werde ich behaupten, nicht zu funktionieren" . Hennes vor 10 Jahren 1
Which seems to be the case here because the site redirects to mobile version... Since updating to Windows 8.1, I have been experiencing this behavior with otherwise well behaving websites as well.. tumchaaditya vor 10 Jahren 1