Diesen Artikel habe ich ursprünglich in mehreren Teilen auf meinem englischen Blog https://www.andreasnick.com veröffentlicht. Insbesondere einem Bekannten ist es zu verdanken, dass nun auch eine deutsche Version vorliegt und hier veröffentlicht wird. Ich selber lese lieber technische Artikel auf deutsch nur ist die Interessengruppe etwas kleiner. Nun heute, am 23.12. als kleines Vorweihnachtsgeschenk an die Community endlich auch die deutsche Version dazu wie der geniale Microsoft Edge mit App-V zu virtualisieren ist.
Microsoft hat vor einigen Monaten einen neuen Edge-Browser auf der Basis des Google Engine Chromium herausgebracht. Dieser wird über eine bestehende Installation installiert, kann aber auch auf Serversystemen die bisher keinen Edge-Browser hatten nachinstalliert werden. Interessant ist, dass dieser Edge problemlos auf älteren Systemen wie Server 2012 R2 oder Windows 8.1 installiert werden kann. Schön ist, dass sich der neue Edge-Browser leicht mit App-V virtualisieren lässt. Wir haben seit dem Release eine App-V variante der Anwendung im Einsatz und bisher keine Probleme damit.
Anmerkung: Das Dokument Edge mit App-V virtualisieren ist insbesondere Thorsten @endi24 zu verdanken. Vielen Dank für den Support! Weiterhin danke ich @bsplittg für das Testen des PaketesDas Paket funktioniert auf aktuellen und auf allen älteren Microsoft-Betriebssystemen, wenn es mit einem klassischen (nicht ADK) Sequencer (App-V 5.1) erstellt wird. Dabei kann das Edge App-V Paket parallel zu einem vorhanden Edge funktionieren. Ein App-V Edge-Browser hat, wenn man möchte, eigene Einstellungen. Beispielsweise eine eigene Startseite oder eine andere Suchmaschine.
Das alles gilt nur für Windows-Systeme. Denn den neuen Edge-Browser gibt es auch für MacOS!
Zu finden ist dieser Browser als online Installation unter:
https://www.microsoft.com/en-us/edge
Bzw. in Deutschland unter:
https://www.microsoft.com/de-de/edge
Weiterhin findet sich eine Insider Version unter:
https://www.microsoftedgeinsider.com/de-de/download/
Für uns ist jedoch die offline Variante vom neuen Edge am interessantesten. Diese ist hier zu finden:
https://www.microsoft.com/en-us/edge/business/download
Zum Zeitpunkt dieses Blogs ist die Version 87 (Current) die aktuelle „Stable" Version, die wir für das App-V Paketnutzen wollen. Als Voraussetzung für die Paketierung mit App-V empfiehlt sich offline Version der Anwendung. Es gibt aktuell keine MSIX Version zum Download. Microsoft scheint hier selber nicht so auf die neue Technik zu setzen, obwohl Office 365 bald darüber verteilt werden soll. Wir bekommen ein klassisches MSI Paket „MicrosoftEdgeEnterpriseX64.msi" für die Installation.
Edge installiert sich vollständig nach:
„c:\Program Files x86\Microsoft\Edge"
„c:\Program Files x86\Microsoft\Edgeupdate"
Microsoft speichert Benutzerdaten per Standard für Edge unter %localappdata%\Microsoft\Edge\User Data
Das ist übel, da es sich hierbei nicht um einen Roaming Pfad handelt. FSLogix Benutzer sind hier fein raus. Für App-V können wir den Pfad mit in das Paket integrieren.
Der Ordner kann über einen Startparameter geändert werden und so beispielsweise nach %AppData% umgelenkt werden (wenn benötigt).
„C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir=%AppData%:\ChromeFilesBusiness. Das wird in der Sequenzierungsphase Beachtung finden.
Dennoch ist es problematisch, diese Dateien im App-V Paket zu haben. Wenn sich die PackageID ändert, wird App-V Dateien an anderer Stelle suchen und der Benutzer verliert seine Konfiguration. Am besten ist das Exkludieren von AppData und die Konfiguration des Edge über eine Gruppenrichtlinie! Wir belassen es hier dennoch im Paket.
Anmerkung: Eine 64 Bit Version von Edge wird dennoch nach c:\Programm Files (x86) installiert!
Es wird ein DCOM Subsystem gefunden, welches nicht virtualisiert werden kann. Meistens werden diese in den Anwendungen nicht benötigt.
{1FCBE96C-1697-43AF-9140-2897C7C69767} (LocalService)
Wenn wir nach der Komponente suchen, erkennen wir, dass es sich um den Edge Elevation Service handelt.
In Chrome ist der Elevation_Service ist eine eigenständige ausführbare Datei, die vom Chrome-Browser auf dem Computer des Benutzers installiert wird. Wir finden diese unter „C:\Program Files (x86)\Microsoft\Edge\Application\87.0.664.66\elevation_service.exe"
Genutzt wird dieser Service in Edge, um Komponenten und Updates zu installieren, die höhere Rechte benötigen. Beides wollen wir in einem App-V Paket nicht. Im Gegenteil - diese Dienste deaktivieren oder löschen wir.Edge auf Terminalservern
Auf einem Server oder Desktop, auf dem der Citrix VDA installiert ist, führt der Start eines des Edge zu einem weißen Fenster. Das passiert nicht mit dem App-V Paket. Wer hier näheres wissen will findet dazu hier einen Blog:
https://jkindon.com/2019/09/17/deploying-brave-and-microsoft-edge-dev-browsers-in-citrix-cvad-environments/
Weiterhin besteht eventuell ein Problem mit der Edge Sandbox. Hier kann es passieren, dass Audio (Mikrofon) nicht sauber unterstützt wird. Diese kann über die Edge Gruppenrichtlinien deaktiviert werden. Bisher habe ich dazu verschiedene Aussagen gehört. Das Problem scheint nicht generell zu bestehen oder ist versionsabhängig.
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge
AudioSandboxEnabled = 0
Oder der Aufruf (Verknüpfung) mit :
–disable-features=AudioServiceSandbox
Edge und FSLogix
Wir verschieben im späteren Verlauf die Benutzerdaten von Edge in den Roaming Teil. Hier hat Microsoft scheinbar auch das schlechte Konzept von Crome übernommen, alles nach AppDataLocal zu speichern. FSLogix hat hier kein Problem und dieser Teil kann vielleicht ignoriert werden.
Profilmanagement
Zum Profilmanagement gibt es hier einen schönen Artikel. U.a. werden Citrix Profilemanager und VMWare DEM betrachtet. Zu beachten ist, dass das App-V Rezept unten alles nach %Appdata% umleitet. Daher ändern sich die Pfade. Wir müssen eher Pfade exkludieren. Im Besonderen den FSLogix den Cache Pfad!
Exclusion wenn nach AppDataLocal gespeichert wird:
Appdata\Local\Google\Chrome\User Data\Default\Cache
Exclusion für FSLogix und Microsoft Roaming Profiles wenn nach AppData gespeichert wird:
Appdata\Roaming\Microsoft\Edge\Default\Cache
Optional:
Appdata\\ Microsoft\Edge\User Data\Default\JumpListIconsMostVisited
Appdata\ \ Microsoft\Edge\User Data\Default\JumpListIconsRecentClosed
AppData\\ Microsoft\Edge\User Data\Default\Media Cache
Empfohlene Konfigurationseinstellungen
Dienste werden deaktiviert:
- MicrosoftEdgeElevationService
Keeps Microsoft Edge up to update. If this service is disabled, the application will not be kept up to date.
„C:\Program Files (x86)\Microsoft\Edge\Application\81.0.416.53\elevation_service.exe" - edgeupdate
Keeps your Microsoft software up to date. If this service is disabled or stopped, your Microsoft software will not be kept up to date, meaning security vulnerabilities that may arise cannot be fixed and features may not work. This service uninstalls itself when there is no Microsoft software using it.
„C:\Program Files (x86)\Microsoft\EdgeUpdate\MicrosoftEdgeUpdate.exe" /svc - edgeupdatem
Keeps your Microsoft software up to date. If this service is disabled or stopped, your Microsoft software will not be kept up to date, meaning security vulnerabilities that may arise cannot be fixed and features may not work. This service uninstalls itself when there is no Microsoft software using it.
„C:\Program Files (x86)\Microsoft\EdgeUpdate\MicrosoftEdgeUpdate.exe" /medsvc
Einstellungen
Bei Bedarf weitere Sprachen hinzufügen.
Edge://settings/languages
Bei Bedarf weitere Sprachen hinzufügen.
Edge://settings/languages
Neue Sprachen:
Hintergrundeinstellungen
Edge://settings/SystemEdge startet Hintergrunddienste nach dem beenden des Browsers und kommuniziert ständig (wie auch Chrome). Das ist für mich ein unerwünschtes Verhalten. Insbesondere für ein App-V Paket. Bei Terminalservern wirkt sich die Konfiguration zusätzlich negativ aus. Hintergrundaktivitäten sind hier besser zu deaktivieren.
Der Sequencer
Wenn das Paket auch auf älteren Systemen funktionieren soll, müsst ihr zwingend einen App-V 5.1 Sequencer nutzen. Für aktuelle Umgebungen empfehle ich den Sequencer aus dem ADK 1807.
Ausschlusselemente (App_V Template):
Insbesondere kann der Ordner [{ProgramFilesX86}]\Microsoft\Edge\Application\81.0.416.53\Installer gelöscht werden. Hier liegt noch einmal ein vollständiges Setup. Andere Elemente sind [{SystemX86}], [{Windows}]\Serviceprofiles (Dienste) und [{AppVPackageDrive}]\Boot (warum auch immer etwas am BCD verändert wird?).
Löschen: alle MSI Files unter C:\Windows\Installer. Achtung: nicht alles löschen. Hier können wichtige Exe Dateien, DLLs und Icons liegen.Sequenzierungsanleitung
- Zurücksetzen des App-V Sequencer Snapshot. Ich nutze einen App-V 5.1 Sequencer auf Windows 8.1 um ein Paket zu bekommen, dass auf älteren Systemen funktioniert.
- Kopieren der Installationsdatei auf den Sequencer (MicrosoftEdgeEnterpriseX64.msi)
- Kopieren der Vorlage „Edge.appvt"
- Die Vorlage im Sequencer laden (Datei/Vorlage laden)
- „Neue virtuelle Anwendung erstellen (Standard)"
- Den Installer MicrosoftEdgeEnterpriseX64.msi nehmen
- Ich nenne die Anwendung „Edge_87_ML_x64" (die Versionsnummer hier ist egal. Spätere Updates brauchen nur die gleiche PackageID und können einen anderen Namen bekommen)
- Edge installieren
- Den Ordner C:\ProgramData\Microsoft\Windows\Start Menu\Programs öffnen und die Verknüpfung für Edge bearbeiten. „C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --user-data-dir=%AppData%\ChromeFilesBusiness
- Mit --User-Data legen wir das Verzeichnis fest, in dem Daten gespeichert werden. Das ist per Standard ansonsten %LocalAppData%
- Die Desktop Verknüpfung löschen
- Dienste Löschen – dazu eine Commandline als „Administrator" öffnen:
Sc Delete Edgeupdate
sc Delete edgeupdatem
- Die Checkbox „Installation ist abgeschlossen" drücken und weiter
- Der Start der Anwendung Edge ist optional (Einstellungen werde damit Teil des Paketes): Hier können Einstellungen wie unter „Empfohlene Konfigurationseinstellungen" beschrieben vorgenommen werden.
- Erststart
- Deaktivieren der Hintergrunddienste
- Deaktivieren der Update suche
- weitere Sprachen installieren
- Microsoft Benachrichtigungen deaktivieren
- Ausgeschlossene Dateien und die DCOM Komponente können ignoriert werden
- „Jetzt beeden" und das Paket speichern.
- Wer nachbearbeiten mag kann die msi Pakete unter c:\Windows\Installer löschen (nur die). Ansonsten ist das Paket einsatzbereit. Insbesondere das Ausschlusselement „[{ProgramFilesX86}]\Microsoft\Edge\Application\87.0.667.66\Installer" verkleinert das Paket um Rund 250 MB.
Weitere Referenzen:
https://www.askwoody.com/2020/privacy-update-brave-is-the-most-private-browser-edge-blabs-like-crazy/
App-V Edge Probleme, der IE Mode und das Fonts Subsystem
Seit unserem ersten Blog zu dem Thema sind inzwischen Monate vergangen. In dieser Zeit hat sich der Edge als App-V Anwendung als sehr stabil erwiesen. Wenn ich dann von Zeit zu Zeit lese, dass mal wieder eine neue kritische Sicherheitslücke auftaucht, können wir mir dem virtuellen Edge schnell darauf reagieren.
An dieser Stelle mache ich gerne noch einmal darauf aufmerksam, dass wir regelmäßig den Edge und andere Browser für unsere Kunden erstellen. Das mit bekannten AppV Bugfixen und mit kundenspezifischen Einstellungen. Bei Interesse sprecht mich bitte darauf an. Beispielsweise auf Twitter @Nickinformation
Microsoft Edge Internet Explorer Mode
Generell funktioniert der IE Mode mit dem neuen Edge. Dabei wird der Internet Explorer in das Edge Fenster integriert. Leider öffnet der Edge Browser immer ein neues Fenster und integriert den Internet Explorer nicht in das Edgefenster. Aussehen soll das wie in der folgenden Abbildung. Dabei zeigt der Edge ein kleines Internet Explorer Symbol neben der Adressleiste.
Erst nachdem man den Edge einmal als Administrator gestartet at funktioniert alles korrekt.
Auf das Problem aufmerksam gemacht hat mich Ben Splittgerber @_qwertzu
Im Weiteren folgt hier auch die Lösung.
Konfiguriert wird der IE Mode über eine Gruppenrichtlinie. Entweder per User oder für den Computer: Computer → Administrative Templates → Microsoft Edge → Configure Internet Explorer Integration. Hier auf „Internet Explorer Mode" stellen.
Weiterhin über die Sitelist.xml. Diese mit dem Tool „Enterprise Mode Site List Manager (schema v.2)" erstellt werden. https://www.microsoft.com/en-us/download/details.aspx?id=49974
Dort wird u.a. festgelegt, wie eine Webseite aus der Sitelist dargestellt wird. Es ist auch möglich eine IE Webseite immer im IE zu starten.
Die Liste legt ihr in eine Freigabe. Anschließend konfiguriert ihr wieder eine Gruppenrichtlinie. Entweder per User oder für den Computer: Computer → Administrative Templates → Microsoft Edge → Configure the Enterprise Site List. Abschließend den SMB Pfad auf die Freigabe eintragen.
Nun funktioniert das Ganze aber noch nicht als App-V Paket. Ich habe das Problem analysiert. Sobald man sich auf eine „Internet Explorer" Seite begibt, möchte Edge administrative Rechte haben. Werden diese gewährt, funktioniert alles. Das ist für ein App-V Paket kein Problem. App-V Anwendungen dürfen in Ihrem Dateisystem und in der App-V Registrierung administrative Aktionen durchführen. Es ist ja nicht das ganze System betroffen. Es muss ein Ein Fehlalarm sein!
Und tatsächlich, nach einer eingehenden Analyse mit dem Sysinternals Procmon konnte der Übeltäter schnell gefunden werden:
Gib deinen Text hier ein ...
Es scheint zwingend notwendig zu sein, dass unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Edgeintegration der vollständige Pfad mit einer VersionID für Edge eingetragen wird. C:\\Program Files (x86)\\Microsoft\\Edge\\Application reicht nicht aus. Ein Integrationspunkt würde vielleicht funktionieren aber würde dann dafür sorgen, dass der Key nur dann funktioniert, wenn wir das Paket global veröffentlichen.Die Lösung ist recht einfach. Wir erweitern die DeploymentConfig.xml um den folgenden Skriptteil.
Ich habe hier den einfachsten Ansatz gewählt. Damit wird kein Skript im App_V Paket benötigt. Komplexer geht natürlich immer.
Damit wird der Registrierungsschlüssel mit dem Start von Edge gesetzt und der IE Mode funktioniert.
Alternativ könne man mit einem Editor, der die VersioID nicht ändert diesen Schlüssel direkt im Paket setzen.
Das App-V Fonts Subsystem und Edge
Es gibt in letzter Zeit ein Problem mit dem Fonts Subsystem, welches zu einem Crash des Edge geführt hat. Gefunden hat das Problem @Royessers
Das Problem kann leicht gelöst werden, indem das Font Subsystem in der DeploymentConfig.xml deaktiviert wird.
Die neue DeploymentConfig.xml muss anschließend im PublishingServer importiert werden.
Zusammenspiel mit Office 365
Die Zusammenspiel mit Office 365 klappt herforragend, wenn der folgende Registrierungsschlüssel gesetzt ist:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClickToRun\OverRide]
"AllowJitvInAppvVirtualizedProcess"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\ClickToRun\OverRide]
"AllowJitvInAppvVirtualizedProcess"=dword:00000001
Probleme mit einem lokalen Office
Wenn ein Microsoft Office lokal installiert ist, kann es zu Problemen mit den Protokolltreibern kommen. Beispielsweise das Öffnen eines Excel Dokuments in Sharepoint. Das ist einer der Gründe, warum Anwendungen, die mit Office interagieren am besten auf einem Sequencer mit einem lokal installierten Office sequenziert werden. Es geht auch anderes. Die das folgende Skript „simuliert" ein lokales Office und sollte vor der Paketierung von Edge auf dem Sequencer ausgeführt werden.