by Marco Hofmann, CTA
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.
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:
Teams HDX services won’t start
May 2023 UPDATE: 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:
- Citrix HDX Browser Redirection Service (CtxBrowserSvc)
- Citrix HDX Teams Redirection Service (CtxTeamsSvc)
- Citrix HDX Port Forwarding Service (CtxPortFwdSvc)
- 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, but as it turned 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.
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:
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.
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 was awarded Citrix Technology Advocate by Citrix for his community work. 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.