How to setup Keyboard Layout based on Language selection at OOBE


ijalabs

Member
Local time
1:51 AM
Posts
13
OS
Windows 11
Hi Experts,

I am working on creating a Windows image using DISM command for Windows 11 22H2. Once the image is created using Dism & using Dism i am reapplying the image to the pc & at the OOBE i am selecting Japanese for the region and completing the OOBE setup process.

If i go to the Keyboard layout option i am seeing by default it is set to 101/102 & i have to set this to 106/109 manually. is there a way we can set this based on Language selection at OOBE.

For example if i select English it has to be 101/102 and if i select Japanese it has to be 106/109 automatically without manual options.

Kindly suggest.

Thanks
Ijalab
 
Windows Build/Version
Windows 11 22H2

Attachments

  • Keyboard layout.JPG
    Keyboard layout.JPG
    14.4 KB · Views: 1

My Computer

System One

  • OS
    Windows 11
    Computer type
    PC/Desktop
I am trying to make the changes using the below given PowerShell command. by using this command i am able to set the language to Japanese but still the Keyboard layout option is showing 101/102 not changed to 106/109.

$lang=(Get-WinSystemLocale).DisplayName

if ($lang -eq '日本語 (日本)')
{
$currentLangAndKeyboard = (Get-WinUserLanguageList).InputMethodTips
if ($currentLangAndKeyboard -eq "0409:00000409")
{
$langList = New-WinUserLanguageList en-US
$langList[0].InputMethodTips.Clear()
$langList[0].InputMethodTips.Add('{0411:{03B5835F-F03C-411B-9CE2-AA23E1171E36}{A76C93D9-5523-4E90-AAFA-4DB112F9AC76}}')
Set-WinUserLanguageList $langList -Force
}
Import-Module International
Set-WinUserLanguageList -LanguageList "ja-JP"
}
else
{
exit
}
Restart-Computer -Force
 

My Computer

System One

  • OS
    Windows 11
    Computer type
    PC/Desktop
Maybe I am missing something, so apologies, but are you using an answer file?


In step 4 here it shows what is needed.

I know if you have any extra spaces inserted anywhere it can cause the whole thing to fail or do weird stuff.
 

My Computers

System One System Two

  • OS
    Windows 11 Pro
    Computer type
    Laptop
    Manufacturer/Model
    Dell G15 5525
    CPU
    Ryzen 7 6800H
    Memory
    32 GB DDR5 4800mhz
    Graphics Card(s)
    RTX 3050 4GB Vram
    Screen Resolution
    1920 x 1080
    Hard Drives
    2TB Solidigm™ P41 Plus nvme
    Internet Speed
    800mbps down, 20 up
  • Operating System
    Windows 11
    Computer type
    Tablet
    Manufacturer/Model
    Lenovo ideapad flex 14API 2 in 1
    CPU
    Ryzen 5 3500u
    Motherboard
    LENOVO LNVNB161216 (FP5)
    Memory
    12GB DDR4
    Graphics card(s)
    AMD Radeon Vega 8 Graphics
    Hard Drives
    256 GB Samsung ssd nvme
Maybe I am missing something, so apologies, but are you using an answer file?
This can't be solved from the answer file, which doesn't handle this level of keyboard mapping.

Instead the script needs one registry change:
Code:
Set-ItemProperty 'registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters' -Name 'LayerDriver JPN' -Value 'kbd106.dll'
 

My Computer

System One

  • OS
    Windows 7
Thanks @garlin

I have only done unattended installs through kari's tutorial so I only know whats in there.
 

My Computers

System One System Two

  • OS
    Windows 11 Pro
    Computer type
    Laptop
    Manufacturer/Model
    Dell G15 5525
    CPU
    Ryzen 7 6800H
    Memory
    32 GB DDR5 4800mhz
    Graphics Card(s)
    RTX 3050 4GB Vram
    Screen Resolution
    1920 x 1080
    Hard Drives
    2TB Solidigm™ P41 Plus nvme
    Internet Speed
    800mbps down, 20 up
  • Operating System
    Windows 11
    Computer type
    Tablet
    Manufacturer/Model
    Lenovo ideapad flex 14API 2 in 1
    CPU
    Ryzen 5 3500u
    Motherboard
    LENOVO LNVNB161216 (FP5)
    Memory
    12GB DDR4
    Graphics card(s)
    AMD Radeon Vega 8 Graphics
    Hard Drives
    256 GB Samsung ssd nvme
Something like this example goes beyond what "Microsoft-Windows-International-Core" can specify. However, you could embed the equivalent "reg add" RunSynchronousCommand inside a "specialize" pass.
 

My Computer

System One

  • OS
    Windows 7
Thanks Andrew,

I am using a PowerShell script to run once using the registry settings.

After first boot the script will check installed OS language then and makes the changes if the it condition is met.

Thanks i will have a check and see if answer file is working.
 

My Computer

System One

  • OS
    Windows 11
    Computer type
    PC/Desktop
This can't be solved from the answer file, which doesn't handle this level of keyboard mapping.

Instead the script needs one registry change:
Code:
Set-ItemProperty 'registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters' -Name 'LayerDriver JPN' -Value 'kbd106.dll'
Thanks Garlin,

I will have a check and make the changes to the script and see if this is fixing the issue.

i am using the PowerShell script and change it o exe using invoke ps2exe option and add it to run once registry, so when the pc boots up it will check the OS installed language and if the condition is met it has to change the keyboard layout.
 

My Computer

System One

  • OS
    Windows 11
    Computer type
    PC/Desktop

Latest Support Threads

Back
Top Bottom