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
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:
- 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. 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.
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.