Microsoft User Experience Virtualization (UE-V) has always had odd limitations. I ran into one of these the other day.
The team was working on a custom template to support roaming multiple languages for a client with international offices. It was not working. It seemed that UE-V does not support roaming the language/keyboard settings associated with adding additional input languages in Windows. These are the settings in the notification area that offer multiple languages with the option in the screenshot below.
We opened a case with Microsoft and the engineer we spoke with confirmed that UE-V does not support this functionality. After speaking to his team internally, he also indicated that only a writeable profile (e.g. roaming profile) would be able to properly retain and manage this information.
In the course of our testing, we determined that there are PowerShell cmdlets that can add additional languages to a profile as part of the logon process. That would, however, force them to be available for any user that logged in with that logon script applied. Some scripting and AD group membership could probably allow for ensuring that certain users or offices always receive additional language support at logon, but it’s not the elegant solution that roaming the setting with UE-V could have been.
Here’s a sample of the logon script that would initialize the French language for a user:
$1 = New-WinUserLanguageList fr-FR
Set-WinUserLanguageList $1 -ErrorAction SilentlyContinue -Confirm:$false -Force
To summarize, it’s important to note that although UE-V is generally a more efficient replacement for roaming profiles, it does not quite provide 100% of their functionality, especially for certain niche settings, such as the issue I encountered here.