The following removes all LanguageTag's, adds de-CH and en-US with multiple keyboard layouts (aka InputMethodTips):
$1 = Get-WinUserLanguageList
$1.RemoveAll( { $args[0].LanguageTag -clike '*' } )
$1.Add("de-CH")
$1[0].InputMethodTips.Clear()
$1[0].InputMethodTips.Add('0807:00000807') # German_Swiss KeyBoard to 0807 i.e. de-CH
$1.Add("en-US")
$1[1].InputMethodTips.Clear()
$1[1].InputMethodTips.Add('0409:00000807') # German_Swiss keyboard to 0409 i.e. en-US
$1[1].InputMethodTips.Add('0409:00000409') # English_United_State keyboard to 0409 i.e. en-US
$1[1].InputMethodTips.Add('0409:0000080c') # French_Belgian keyboard to 0409 i.e. en-US
Set-WinUserLanguageList -LanguageList $1 -Force
The following removes all LanguageTag's, adds en-US with multiple keyboard layouts (aka InputMethodTips):
$1 = Get-WinUserLanguageList
$1.RemoveAll( { $args[0].LanguageTag -clike '*' } )
$1.Add("en-US")
$1[0].InputMethodTips.Clear()
$1[0].InputMethodTips.Add('0409:00000807') # German_Swiss keyboard to 0409 i.e. en-US
$1[0].InputMethodTips.Add('0409:00000409') # English_United_State keyboard to 0409 i.e. en-US
$1[0].InputMethodTips.Add('0409:0000080c') # French_Belgian keyboard to 0409 i.e. en-US
Set-WinUserLanguageList -LanguageList $1 -Force
Reference:
International Settings
automation - Changing keyboard layout in PowerShell for multiple languages - Stack Overflow