
Kurz notiert: MS Edge Chromium auf Citrix Virtual Apps & Desktops serverbasierten Betriebssystemen.
Ein erster (und neugieriger) Kunde wollte gerne den neuen Edge Chromium in seiner CVAD 1912 LTSR Farm bereitstellen. Leider ist er dabei auf ein leeres, weißes Fenster und viele MSEdge.exe Prozesse gestoßen.

Ich nutze den neuen Microsoft Edge auf meiner dedizierten VM via „Remote PC Access“ und vermutete den Fehler vorerst auf dem Serverbetriebssystem. Ein kurzer Test auf einem guten, alten (nicht Citrix) Terminalserver ergab allerdings einen funktionierenden Edge. Etwas Recherche im Citrix Forum später brachte die Erleuchtung: „Citrix API Hooks“
Key: HKLM\SYSTEM\CurrentControlSet\services\CtxUvi Value Name: UviProcessExcludes Type: REG_SZ Value: badapp1.exe;badlongname.exe;badapp2.exe
Der Wert-Name „UviProcessExcludes“ enthält in der Regel bereits verschiedene „badapps.exe“. Hier sollte am Ende des Strings einfach „;msedge.exe;“ ergänzt werden. In meinem Fall sieht der Wert (der per GPP Registry auf die VDAs kommt) dann folgendermaßen aus:
Key: HKLM\SYSTEM\CurrentControlSet\services\CtxUvi Value Name: UviProcessExcludes Type: REG_SZ Value: LsaIso.exe;BioIso.exe;FsIso.exe;sppsvc.exe;vmsp.exe;msedge.exe;
Update: Da mittlerweile eine Reihe weiterer Kunden auf den Microsoft Edge updaten, gibt es auch erste Probleme durch das komplette Deaktivieren des Hookings per „UviProcessExcludes“. Ein Beispiel wäre die gute alte DATEV SmartCard bzw. der DATEV mIDentity in einer Citrix Session. Hier hat sich herausgestellt, dass es ausreicht das „SfrHooking“ (Special Folder Redirection) für die „msedge.exe“ zu deaktivieren. Anbei ein kleines PowerShell Script, was die erste Mehtode (UviProcessExcludes) prüft und ggfs. korrigiert und dann die entsprechenden SfrHooks für den Edge setzt:
$RegUviProcExcl = Get-ItemPropertyValue ` -Path "HKLM:\SYSTEM\CurrentControlSet\Services\CtxUvi" ` -Name "UviProcessExcludes" ` -ErrorAction SilentlyContinue if($RegUviProcExcl -match "msedge.exe;"){ Write-Output "Bereinige ""HKLM:\SYSTEM\CurrentControlSet\Services\CtxUvi"" REG_SZ ""UviProcessExcludes""" $RegUviProcExcl = $RegUviProcExcl.Replace("msedge.exe;","") Set-ItemProperty ` -Path "HKLM:\SYSTEM\CurrentControlSet\Services\CtxUvi" ` -Name "UviProcessExcludes" ` -Value $RegUviProcExcl | Out-Null } else{ Write-Output """msedge.exe;"" nicht in ""UviProcessExcludes"" gesetzt -> Ok." } if(Test-Path -Path "HKLM:\SOFTWARE\Citrix\CtxHook\AppInit_Dlls\SfrHook"){ if(-not (Test-Path -Path "HKLM:\SOFTWARE\Citrix\CtxHook\AppInit_Dlls\SfrHook\msedge.exe")){ Write-Output "Erstelle ""HKLM:\SOFTWARE\Citrix\CtxHook\AppInit_Dlls\SfrHook\msedge.exe""" New-Item ` -Path "HKLM:\SOFTWARE\Citrix\CtxHook\AppInit_Dlls\SfrHook" ` -Name "msedge.exe" | Out-Null } else{ Write-Output """msedge.exe"" bereits in ""HKLM:\SOFTWARE\Citrix\CtxHook\AppInit_Dlls\SfrHook"" gesetzt -> Ok." } } else{ Write-Output """HKLM:\SOFTWARE\Citrix\CtxHook\AppInit_Dlls\SfrHook"" nicht vorhanden! Manuel prüfen!" } if(Test-Path -Path "HKLM:\SOFTWARE\WOW6432Node\Citrix\CtxHook\AppInit_Dlls\SfrHook"){ if(-not (Test-Path -Path "HKLM:\SOFTWARE\WOW6432Node\Citrix\CtxHook\AppInit_Dlls\SfrHook\msedge.exe")){ Write-Output "Erstelle ""HKLM:\SOFTWARE\WOW6432Node\Citrix\CtxHook\AppInit_Dlls\SfrHook\msedge.exe""" New-Item ` -Path "HKLM:\SOFTWARE\WOW6432Node\Citrix\CtxHook\AppInit_Dlls\SfrHook" ` -Name "msedge.exe" | Out-Null } else{ Write-Output """msedge.exe"" bereits in ""HKLM:\SOFTWARE\WOW6432Node\Citrix\CtxHook\AppInit_Dlls\SfrHook"" gesetzt -> Ok." } } else{ Write-Output """HKLM:\SOFTWARE\WOW6432Node\Citrix\CtxHook\AppInit_Dlls\SfrHook"" nicht vorhanden! Manuel prüfen!" }
Hallo Jan,
sehr gutes Ps-Script.
Ich bin trotzdem am verzweifeln.
Sobald die Einstellungen (mit PS, mit GPO, oder per Hand) in der CitrixVDA 2016 sind, funktioniert der Edge einwandfrei (auch ohne Neustart oder gpupdate nach ca. 5 Sekunden).
Leider bleibt bis zu einem reboot der VM der Anmeldebildschirm für neue Anmeldungen grau.
viele Grüße
Mario
Hi Mario,
danke. 🙂
Sobald du im „SfrHook“ den „msedge.exe“ Key erstellst kann sich niemand mehr anmelden? Nach einem Reboot der VDA ist dann aber alles gut oder bleibt das Problem bestehen?
Gruß
Jan