Determining Language Locales and values for MDT 2012 with Powershell

Within MDT 2012 (and previous versions) you can pass along to the operating system certain definitions.  One of these is the default keyboard and language locales.   These are defined by the Variables in CustomSettings.ini or your “Rules” Tab in MDT 2012.

The Variables you need to modify are

InputLocale= 0409:00000409
KeyboardLocale= 0409:00000409

You will also need to supply the following line as well


To find out the LCID for a French version you can run this line in Windows Powershell

[system.globalization.cultureinfo]::getcultures(“AllCultures”) | where { $_.Displayname –like ‘*french*’ }

the Returned object in your Console which show you ALL Cultures with the name “French” in them.


To switch the French Canadian one for example we first alter UILanguage


Our next challenge is figuring out the UserLocale numbers.   What this ACTUALLY is, is a direct reference to the LCID.   The Displayed LCID is in Decimal.   We can test this by taking the first 4 hexadecimal digits from  “UserLocale” and converting them back to decimal with Powershell


This returns the decimal value 1033 which if we query the Language locales will confirm this as a en-US configuration.

[system.globalization.cultureinfo]::getcultures(“AllCultures”) | where { $_.LCID –eq 1033 }


So all we need to do is convert the LCID value for a French Canadian entry into Hexadecimal and swap in the new values.


This returns a value of c0c.   We just change the hexadecimal values of UserLocale, InputLocale and KeyboardLocale with the updated value for fr-CA

InputLocale= 0c0c:00000c0c
KeyboardLocale= 0c0c:00000c0c

Feeling the Power of Automation? I AM !

The Energized Tech