...
Logging on to Horizon Agent 2103 (8.2) / 2106 (8.3) / 2111 (8.4) VDI from Horizon Client 2103 (8.2) / 2106 (8.3) / 2111 (8.4) changes VDI keyboard locale to EnglishThe audit registry event log confirms that pcoip_server_win32.exe and VMwareView-RdeServer.exe delete and do not recreate the following keys \REGISTRY\USER\<User's SID>\Keyboard Layout\Preload This issue is reported in Blast and PCoIPVDI with Agent 2106 causes VMwareView-RdeServer.exe to delete the Preload registry key and issue even when "Extend the local IME to this desktop" is disabled on Horizon Client.
Horizon Agent versions 2103 through 2111 have the Keyboard locale synchronization enabled by default. When the Keyboard locale synchronization is enabled, Horizon Agent removes all keyboard layouts on the VDI when connecting to a session and sets the same layout as the client. The layout is also restored when disconnecting.Among the Win32 APIs used by the above operation, InstallLayoutOrTip and EnumEnabledLayoutOrTip of the Text Service Framework are involved. Due to the high load on InstallLayoutOrTip, EnumEnabledLayoutOrTip will fail if the above layout operation is performed each time a session is connected/disconnected. 2022-02-07T17:30:30.607+09:00> LVL:0 RC: 0 EXTERN :input_devtap ==> TSF_EnumEnabledLayoutOrTip: zero keyboard layouts returned.Failed with error 00000000 2022-02-07T17:30:30.608+09:00> LVL:0 RC: 0 EXTERN :input_devtap ==> Unable to get list of existing layouts. When "Extend local IME to this desktop" is enabled, VMwareView-RdeServer.exe synchronizes the client layout to the agent and modifies registry parts, including the Preload key.Solely with Agent 2106, VMwareView-RdeServer.exe deletes the Preload key and issues even when the local IME extension is disabled on Horizon Client.
Horizon 2203 (8.5) will revert the default setting for the Keyboard locale synchronization to disabled, so no issue will occur. Reference: VMware Blast Policy Settings
To workaround with VDI that already has an issue, execute a Set-WinUserLanguageList - force command in PowerShell with login user privileges, dependent on the respective additional language installed.Please find the reference page on Set-WinUserLanguageList and the example commands below. Set-WinUserLanguageList -LanguageList ja -force Set-WinUserLanguageList -LanguageList fr-CA -force If you wish to continue using Horizon Agent 2103 / 2111, you can disable the Keyboard locale synchronization by setting the following settings.VDI Registry:PCOIP [HKEY_LOCAL_MACHINE\Software\Policies\Teradici\PCoIP\pcoip_admin] pcoip.enable_input_language_sync = (REG_DWORD) 0 Blast: [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\VMware, Inc.\VMware Blast\Config] KeyboardLocaleSyncEnabled = (REG_SZ) 0 GPO:[Turn on PCoIP user default input language synchronization][Keyboard locale synchronization]Set to disabledHorizon Client GUI:"Extend the local IME to this desktop" set to disabledNote:Horizon Agent 2106 does not work around issue occurrence by disabling the Keyboard locale synchronization.