Essa configuração é armazenada em HKEY_CURRENT_USER \ Control Panel \ Desktop \ UserPreferencesMask. O valor do registro em si é um valor binário que representa uma máscara de bits de várias configurações. Seu formato está documentado aqui
Infelizmente, este documento está um pouco desatualizado e não contém informações sobre essa configuração específica. Ao experimentar esse valor, descobri que as configurações estão armazenadas no bit 32. Quando esse bit está ativado, a entrada alterna para cada aplicativo separadamente.
Example of HKEY_CURRENT_USER\Control Panel\Desktop\UserPreferencesMask with setting on:
9e 1e 07 80 92 00 00 00
With setting off:
9e 1e 07 80 12 00 00 00
Aqui está um exemplo de script do Powershell para ativá-lo:
$prefMask = (Get-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name 'UserPreferencesMask').UserPreferencesMask
if (($prefMask[4] -band 0x80) -eq 0) {
$prefMask[4] = ($prefMask[4] -bor 0x80)
New-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name 'UserPreferencesMask' -Value $prefMask -PropertyType ([Microsoft.Win32.RegistryValueKind]::Binary) -Force | Out-Null
}
Foi testado em várias máquinas win8.1 (x86 e x64) e parece funcionar como esperado.
Observe que a configuração entra em vigor imediatamente, mas exibe errado na caixa de diálogo das configurações do painel de idiomas. Então você precisa fazer logoff e logon novamente para as configurações do painel para pegar a mudança.