Install-Language breaks Citrix HDX Teams optimization on Azure Windows 10 Multi-User

While building a Citrix DaaS Standard for Azure environment, we made use of the new Install-Language PowerShell command. Sadly, this broke the Citrix HDX Teams optimization. In this article, I show you how to work around this issue.

Citrix HDX services

Install-Language…

During this project, we decided to build our Citrix Master images through Packer of Microsoft marketplace images. These images are en-US only, and the administrator has to provide a language pack as needed. For this use-case, Microsoft has introduced a new PowerShell command in the latest builds of Windows 10 and Windows 11 multi-user: Install-Language

This command replaces everything from the past and can be used as a simple one-liner during your master image build process:

Install-Language -Language de-DE -CopyToSettings

…breaks the OS

But as far as we know, this is currently bugged. As Patrick van den Born discovered, Windows is not reachable anymore, if you reboot the operating system after the mentioned command. In his blog post, he discovered a workaround to fix this issue. If you trigger a complete Windows update run directly after the installation of the language pack, the issue can be circumvented. To solve that issue, my Packer HCL currently looks like this:

Packer 010_language-de-DE.ps1
Packer 010_language-de-DE.ps1

Teams HDX services won’t start

UPDATE May 2023: Everything written below is no longer necessary with Citrix VDA 2303 and up. I leave the text online for research purposes, or if you are required to run a VDA build lower than 2303 like version 2212.

As we are now once again able to complete a Packer master image build process, I was able to connect to my Citrix DaaS deployment and check out the image quality. I then soon noticed, that the Microsoft Teams HDX optimization wasn’t working. With the help of Balint Oberrauch, I discovered that four Citrix Services weren’t starting:

  1. Citrix HDX Browser Redirection Service (CtxBrowserSvc)
  2. Citrix HDX Teams Redirection Service (CtxTeamsSvc)
  3. Citrix HDX Port Forwarding Service (CtxPortFwdSvc)
  4. Citrix HDX MediaStream Service (CtxRaveSvc)

During the investigation of the problem I created Citrix Case #81670738 which led me to: When installing VDA 7 1906.2 to a Windows server with Danish language pack some services fail to start due to login issues. (citrix.com)

I took me a while to understand how that old CTXKB was linked to my issue.  As it turns out, this is still relevant with VDA 2212 on Azure in 2023, as the VDA still seems to have issues with language packs. And as all Azure marketplace images are en-US and Microsoft helps us out with the new and easy to use Install-Language PowerShell command, I expect this to become a real issue in the future.

Solution

The underlying issue seems to be, that these services have a wrong logon name set in the registry, when a language pack is installed. After a bit of testing, comparing and a few reboots, I found a logon name combination that works reliable on a de-DE master image build:

CtxBrowserSvc
LocalSystem
CtxTeamsSvc
LocalSystem
CtxPortFwdSvc
NT Authority\LocalService
CtxRaveSvc
NT Authority\LocalService

To automate these fixes for my Packer deployment, I added the following commands to my Citrix VDA 2212 PowerShell script:

Write-Host "##[command]Fix service logon names"
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\CtxBrowserSvc' -Name 'ObjectName' -Value 'LocalSystem' -Type String -Force
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\CtxTeamsSvc' -Name 'ObjectName' -Value 'LocalSystem' -Type String -Force
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\CtxPortFwdSvc' -Name 'ObjectName' -Value 'NT Authority\LocalService' -Type String -Force
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\CtxRaveSvc' -Name 'ObjectName' -Value 'NT Authority\LocalService' -Type String -Force

Now with the tip from Patrick and the fix to the service logon names, the Packer build process creates a Windows 10 Multi-User master image, with a de-DE language pack and working Citrix HDX Teams optimization.

Author: Marco

Marco is an IT-System administrator and IT-Consultant with 10+ years experience. He is specialized in the delivery of virtual Apps and Desktops with Citrix solutions. In 2017 he has been awarded Citrix Technology Advocate by Citrix for his community work (#CTA). His second core area is availability & performance monitoring with Zabbix, a leading open-source solution. His employer is the German IT-Company ANAXCO, which is developing a Transport Management Software (TMS) based on Microsoft Dynamics AX. More about Marco

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.