How to add new keyboard language from GPO?

Now I have Windows Server 2012 R2 system and it has domain controller. And domain users do not have permission add new language to their keyboard. So, how can I add new keyboard languages from group policy(or is it possible) ?


The keyboard layouts loaded are controlled by HKEY_CURRENT_USER\Keyboard Layout\Preload\, where 1 sets the default layout followed by other layouts 2...N.

Registry Editor for Keyboard Layout Preload

You can find these values:

  • from an official source, e.g. Microsoft's Default Input Profiles (Input Locales) in Windows
  • in a more readable format from e.g. kbdlayout.info
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\DosKeybCodes

One option is to add these registry values directly using the Group Policy

  • User Configuration
    • Preferences
      • Windows Settings
        • Registry

This method is suitable if you'd only need to set these settings once; if you don't need to modify them regularly or use different settings for different OUs. Anything above that gets harder to manage. A more elegant way would be adding a custom .ADMX template.

Here's a quick example of an older .ADM template with dropdown menus for three keyboard layouts. It's easy enough to add more layouts or increase the amount of additional layouts.

CLASS USER
   CATEGORY "Keyboard Layout"
      POLICY "Keyboard Layout Preload"
         KEYNAME "Keyboard Layout\Preload"
         PART Default DROPDOWNLIST
            VALUENAME "1"
            ITEMLIST
               NAME "United Kingdom" VALUE "00000809" DEFAULT
               NAME "Russian" VALUE "00000419"
               NAME "Japanese" VALUE "00000411"
               NAME "Korean" VALUE "00000412"
            END ITEMLIST
         END PART
         PART Second DROPDOWNLIST
            VALUENAME "2"
            ITEMLIST
               NAME "Disabled" VALUE DELETE
               NAME "United Kingdom" VALUE "00000809"
               NAME "Russian" VALUE "00000419"
               NAME "Japanese" VALUE "00000411"
               NAME "Korean" VALUE "00000412"
            END ITEMLIST
         END PART
         PART Third DROPDOWNLIST
            VALUENAME "3"
            ITEMLIST
               NAME "Disabled" VALUE DELETE
               NAME "United Kingdom" VALUE "00000809"
               NAME "Russian" VALUE "00000419"
               NAME "Japanese" VALUE "00000411"
               NAME "Korean" VALUE "00000412"
            END ITEMLIST
         END PART
      END POLICY
   END CATEGORY