IE11 Ende

Vielleicht sind die auf diese Seite gestoßen, weil sie folgende Aussage so oder so ähnlich gelesen haben:

Support for Internet Explorer 11 ended on June 15, 2022 and IE 11 will no longer be accessible after February 14, 2023.

Da ist was dran, aber es ist nicht komplette Information. Natürlich endete am 15. Juni 2022 der Support für den IE11, der immer noch auf vielen Servern und Clients installiert aber schon lange nicht mehr erste Wahl ist. Die meisten Firmen oder Anwender haben schon entweder Microsoft Edge oder einen anderen Browser wie Google Chrome, Firefox, Opera, Brave o.a. Aber wie gehen Sie als Admin nun mit dem immer noch installierten IE11 auf Desktops und vor allem Server um?

Übrigens: Der Support mit Sicherheitsupdates für "Edge Legacy" ist schon am 9 März 2021 ausgelaufen. Aber das sollte kein Thema mehr sein.

IE Support Statement

Wie immer nutzen Computerzeitschriften und Webportal solche "End of Life"-Meldungen um Aufmerksamkeit, Links und Besucher zu generieren. Wenn Sie aber die offizielle Microsoft Dokumentation lesen, dann relativiert sich die Aussage schon wieder:

Internet Explorer is a component of the Windows operating system (OS) and follows the Lifecycle Policy for the product on which it is installed and supported. Please note that the Internet Explorer (IE) 11 desktop application ended support for certain operating systems on June 15, 2022. Customers are encouraged to move to Microsoft Edge with IE mode. IE mode enables backward compatibility and will be supported through at least 2029
Quelle: https://learn.microsoft.com/en-us/lifecycle/faq/internet-explorer-microsoft-edge

Es ist also mitnichten so, dass zu einem Stichtag der IE11 gar nicht mehr funktioniert. Er ist ja Teil der verschiedenen Betriebssysteme und damit auch an den Support gebunden. Im Jan 2023 sind bis auf wenige Embedded-Versionen alle noch aktiv unterstützten Betriebssysteme mit dem IE11 ausgestattet.

Und selbst ein "unsupportet" bedeutet nicht, dass 3rd Programme nicht weiter die Komponenten des IE11 nutzen können. Die FAQ schreibt dazu:

Q: If a customer has turned off the Internet Explorer feature but has third-party software that uses Internet Explorer runtime DLLs, how can the Internet Explorer runtime DLLs be updated?
A: If customers need an update to the Internet Explorer runtime DLLs, they must install the latest version of Internet Explorer (IE11) to update the runtime DLLs. After doing so they will continue to receive security updates.
Quelle: https://learn.microsoft.com/en-us/lifecycle/faq/internet-explorer-microsoft-edge

Es wird also nicht die IE11-Engine entfernt, deaktiviert oder ersetzt, sondern das für den Anwender sichtbaren Teil:

*The retired, out-of-support Internet Explorer 11 (IE11) desktop application will be permanently disabled on certain versions of Windows 10 as part of the February 2023 Windows security update ("B") release scheduled for February 14, 2023. We highly recommend setting up IE mode in Microsoft Edge and disabling IE11 prior to this date to ensure your organization does not experience business disruption.
Quelle: https://learn.microsoft.com/en-us/lifecycle/faq/internet-explorer-microsoft-edge#is-internet-explorer-11-the-last-version-of-internet-explorer-

Das Icon dürft dann aber nicht mehr funktionieren.

IE Komponenten deinstallieren

Ein Baustein einer Sicherheitsstrategie ist natürlich nur notwendige Komponenten zu installieren. Wenn Sie auf einem Server oder Client die IE-Komponenten nicht benötigen, dann können Sie diese auch komplett entfernen. Damit entfallen auch die weiterhin gelieferten Updates. Bei Windows Server gib es mit der "Server Core" eine Version  mit minimalem Desktop, weil viele Angriffsvektoren auch im "Explorer" und nicht nur im "InternetExplorer" ist.

Allerdings ist es schon ein Unterschied, ob Windows nur den IE deaktiviert oder Sie die Komponente komplett entfernen. Sie sollten also genau prüfen, welche Effekte die folgende Konfigurationsänderung bedeutet:

REM IE entfernen. Aufruf aus einer AdminShell
C:\Windows\System32\dism.exe /online /Disable-Feature /FeatureName:Internet-Explorer-Optional-amd64

Die Deaktivierung geht eigentlich ganz schnell und dauert nur wenige Sekunden. Allerdings ist danach ein Neustart erforderlich:

Das ist natürlich auch über die PowerShell möglich. Allerdings nicht mit DisableWindowsFeature sondern mit DisableWindowsOptionalFeature

Disable-WindowsOptionalFeature -FeatureName Internet-Explorer-Optional-amd64 -Online

Die Deinstallation können Sie auch wieder rückgängig machen.

REM IE reaktivieren. Aufruf aus einer AdminShell
C:\Windows\System32\dism.exe /online /Enable-Feature /FeatureName:Internet-Explorer-Optional-amd64

Auch per Powershell ist es möglich.

Enable-WindowsOptionalFeature -FeatureName Internet-Explorer-Optional-amd64 –Online

Auch hier ist wieder ein Neustart erforderlich.

Den aktuellen Status können Sie natürlich auch abfragen, z.B. im Rahmen eines Inventory aller Server o.ä.

PS C:\> Get-WindowsOptionalFeature -FeatureName Internet-Explorer-Optional-amd64 -Online

FeatureName      : Internet-Explorer-Optional-amd64
DisplayName      : Internet Explorer 11
Description      : Finds and displays information and Web sites on the Internet.
RestartRequired  : Required
State            : Enabled
CustomProperties :
                   \SoftBlockLink : http://go.microsoft.com/fwlink/?LinkID=142507

Der "State" ist auf "Enabled" oder "Disabled".

IE als COM-Objekt

Schon immer konnten wir aus VBScript, PowerShell und anderen Programmiersprachen den Internet Explorer als COM-Objekt starten und fernsteuern. Hier ein einfaches Codebeispiel.

$ie = New-Object -com internetexplorer.application
$ie.Visible =$true
$ie.Navigate("https://www.msxfaq.de")

Sobald Sie aber die Internet Explorer Komponente deinstallieren, scheitert schon das Instanzieren.

PS C:\> $ie = New-Object -com internetexplorer.application
New-Object : Retrieving the COM class factory for component with CLSID {00000000-0000-0000-0000-000000000000} failed
due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
At line:1 char:7

Hier sollten Sie also frühzeitig prüfen, ob die Anschaltung oder die Deinstallation wichtige Funktionen behindert.

Automating Internet Explorer with PowerShell
https://www.youtube.com/watch?v=6KkK8kEghm4

PowerShell Invoke-Webrequest und IE

Interessant war hier die Nutzung aus der PowerShell. Trotz deinstallierter GUI kommt hier ggfls. die Warnung zur "Enhanced Security Configuration".

Nach der Bestätigung konnte ich dann auf den Inhalt der Variable "$a" auch wiederholt zugreifen. Der Abruf selbst war problemlos. Wenn ich mit "-UseBasicParsing" bei Invoke-WebRequest auf den IE verzichte, kommt hingegen keine Warnung. Dennoch kann das natürlich Skripte stören.

Allerdings kommt die Meldung natürlich auch, wenn der IE nicht deinstalliert wurde und hat nur was mit der verstärkten Sicherheit zu tun. Da Skripte allerdings oft unüberwacht laufen, stört dies natürlich den Ablauf:

Edge Automation

Leider können Sie den Edge Browser nicht einfach per COM-Objekt steuern und einfach den Aufruf anpassen und auch Microsoft hat dem Edge keine "Kompatibilitätsschicht" addiert. Natürlich kann ich über verschiedene Umwege den Edge-Browser starten und mir dann den Window-Handle besorgen und quasi mit "Sendkey" auch Steuersequenzen an das Fenster zur Fernsteuerung senden. Ich habe aber keinen Zugriff auf das HTML-Dokument selbst und auch kein Document Object Model (DOM) zur direkten Modifikation.

Aber es gibt einen "WebDriver" für Edge, mit der eine Automatisierung für Tests etc. möglich ist und die gleiche API funktioniert sogar für Firefox und andere Browser, das WebDriver nicht von Microsoft sondern vom W3C koordiniert wird und von Selenium inspiriert wird:

WebDriver is disabled by default for security. In order to enable using WebDriver, you will need to download and install the MicrosoftWebDriver in a location with your test repository.
Quelle: https://blogs.windows.com/msedgedev/2015/07/23/bringing-automated-testing-to-microsoft-edge-through-webdriver/

Den notwendigen "Treiber" gibt es für Edge auf https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ und nach dem Auspacken des ZIP-Archivs können Sie die EXE einfach starten. Sie öffnet ein Fenster, welches nur lokal auf einem Port erreichbar ist.

Von Microsoft gibt es nicht nur den WebDriver für Edge sondern auch Beispielcode:

Auf weitere Details verzichte ich hier und verweise auf die weiteren Seiten:

Edge drauf

Wenn sie aber den IE als Applikation entfernen oder Microsoft ihn geblockt hat, dann brauchen Sie ja einen anderen Browser. Sie haben hier mittlerweile eine breite Auswahl von Browsern, die im Hintergrund wieder Microsoft Edge die Chromium-Engine nutzen oder auf der Firefox-Engine aufsetzen. Solange in IE auf dem Server war, konnten sie da direkt den Edge herunterladen und installieren. Ohne einen Browser auf dem Server müssen Sie die Installationsquelle auf einem anderen System herunterladen, auf den Server kopieren und dann ausführen.

Download and configure Microsoft Edge for business (Vollversion)
https://www.microsoft.com/en-us/edge/business/download

Webinstaller (ca. 2MB)
https://www.microsoft.com/en-us/edge

Der Webinstaller lädt dann natürlich die restlichen Bestandteile nach wozu das System Internetzugriff braucht. Das ist auf vielen Server nicht immer der Fall. Das ist aber der einfachste interaktive Weg. Ich habe aber noch einen Weg über Winget gefunden, der eine Automatisierung erlaubt.

winget install -e --id Microsoft.Edge

Bislang habe ich damit aber noch nicht gearbeitet, um praktische Tipps geben zu können

Weitere Links