I had a customer who wanted to install the operating system language packs as a dynamic online application installation in the ConfigMgr task sequence based on the region where the client was deployed. Because of this, they wanted to change the locale settings (UI language, keyboard layout, etc.) dynamically after the language pack was installed.

MDT has the properties UserLocale, SystemLocale (XP/2003), InputLocale (XP/2003), KeyboardLocale (Vista and higher), and UILanguage for configuring locale settings. (Note that SystemLocale is only a standard property in MDT 2010 and later. SystemLocale must be added as a custom property for versions of MDT before 2010.) However, these are only used by MDT to configure these settings in the answer file (Sysprep.inf or Unattend.xml) offline when the operating system image is applied.

To configure these settings online requires using a control panel command with a special answer file that just has locale settings. These are documented here for Window XP/2003 and Windows Vista and higher:

So I created the attached script for Windows XP and Windows Vista to run after the MUI Pack install. I put this script together right at the end of the engagement (last minute customer request) so it did not get much testing. I haven’t tried it with Windows 7 but it should work since XML file used should be the same as Windows Vista. If you encounter problems, please post comments.

This script uses the MDT Properties above and a custom property called GeoID (Vista and higher) to create the appropriate XML or INF settings file (named RegionalOptions.log) and then runs the appropriate command with intl.cpl. (If SystemLocale is not specified, then the value of UserLocale is used for that.) You could expand this script to handle other settings using the references links found above.

Disclaimer: The information on this site is provided "AS IS" with no warranties, confers no rights, and is not supported by the authors or Microsoft Corporation. Use of included script samples are subject to the terms specified in the Terms of Use.

This post was contributed by Michael Murgolo, a Senior Consultant with Microsoft Services - U.S. East Region.

This is likely occurring due to file system redirection on Windows x64 (msdn.microsoft.com/…/aa384187(v=VS.85).aspx). Since the ConfigMgr Task Sequencer
is 32-bit, the version of cscript.exe (and hence control.exe launched by the script) will be the 32-bit version. This version may not work. Try disabling 64-bit file system redirection for that Task Sequence step (technet.microsoft.com/…/bb632992.aspx).

Are you running this from an elevated command prompt? Is the file "C:MININTSMSOSDOSDLOGSRegionalOptions.log" being created and does the contents look like valid XML?

Check the event log per the instructions in the Logging section of Vista link in the post above.

You could also try running the command directly. Without deleting the C:MININT folder (so that the file "C:MININTSMSOSDOSDLOGSRegionalOptions.log" remains there) try running the command directly in an elevated command prompt.

I'm using the control.exe intl.cpl to set the language during the user deployment in a task sequence. The problem that I got is, that the local account NT-AUTORITHY is renamed to NT-AUTORITÄT which the causes an error during SQL server installation. OS is Vista, Language in de-DE. Do you have any idea how to modify the xml file to not rename this account but have a German user interface for all new users?

I think I know what the problem is. The link to GeoID values above used to be listed in decimal not hex. The samples on the Windows Vista Command Line Configuration of International Settings page and my script expect decimal values. Try converting to decimal (e.g. try 223 for Switzerland instead of 0xDF).

There is nothing “in-the-box” in Configuration Manager or MDT for prompting a user during ZTI. However, the Configuration Manager Team is working on a tool set called Modena to allow for prompting the user for some items. You can find information on these here: http://blogs.technet.com/osd/archive/tags/Modena/default.aspx

I finally got some feedback on this. Supposedly the scheme has not changed for Windows 7. But there appears to be a bug where the command line does not work unless the path to file is quoted (even if there are no spaces in the path) and the full path to the file is specified. Like this:

This script is designed to be used with MDT. It requires ZTIUtility.vbs to be in the same folder to work (put the script in the MDT "Scripts" folder) and all the MDT properties I mentioned populated. Did you do this? Running the command by itself will do nothing. A Gather step must run in the task sequence before this is run.

Did the script generate any logs (RegionalSettings.log or RegionalOptions) where the MDT logs are created (LTI – C:MinintSMSOSDOSDLOGS or ZTI – C:WindowsSystem32CMMLogs, C:WindowsSystem32CMMLogsSmstslog).

This didn’t work for Windows 7. Even I tried running the command in OS didn’t make any difference. It doesn’t give any error messages or output. I guess command silently fails even if something is wrong.

Sorry I wasn’t clear enough. Your script runs with no problems. The log files get created and the TS step exits out with no failure.

The command that I am reffering to is control intl.cpl,, /f:"filename.xml". I am not sure if the syntax has changed from Vista to Windows 7. Here is the sample xml that I use for changing the UIlanguage.

Can I directly create the XML file and run it on online Windows 7 image? I have a customer with windows 7 installed and MUI (Danish) installed. I want to set the UI language to Danish in automatic way.

Can I create a XML file, like below and run directly using the control intl.cpl command?

I started off by running the command as a 'Run Command Line' action in the Task Sequence and specifying a package which contained the English.xml file. Since then I've tried every different way I could think of to run the command in a Task Sequence and even in an Advertisement but it always returns the same error.

The command line I gave in my first post reflects my last attempt, which was to copy the file to the local temp folder and then excute the command in the Task Sequence.

Thanks for the posting!!! This is exactly what I needed to complete a LTI interface that needed to set regional settings in the SCCM ZTI process. I have seperated the inis to look like ja-JP.ini, es-es.ini, etc, etc.. and put the corressponding regional settings. I call to each setting via the task sequence using the cscript provided. You are the man!

I have machines where all the Region and Language settings have been changed to Canadian.

I have managed to use your examples to change every feature with the exception of one.

Where I am running into problems is with the removal of the "English(Canada)" Input keyboard.

It the following additional language listed below it "US", "Canadian Multilingual Standard", and "Canadian French". I have the following lines added to remove theses keyboards and add "English(US)" keyboard:

<gs:InputLanguageID Action="remove" ID="1009:00001009"/>

<gs:InputLanguageID Action="remove" ID="11009:00011009"/>

<gs:InputLanguageID Action="remove" ID="0409:00000409"/>

<gs:InputLanguageID Action="add" ID="0409:00000409" Default="true"/>

I get an error when using "11009" for the "Canadian Multilingual Standard", it says it doesn't match its regular expression. Any ideas where I might be going wrong?

I wanted to modify the data and time formats of the system (as per my wish) at the end of COEM installation. For that i have created an .xml file that specifies what would be the format of short date and long date etc…

and also i read that the command to execute is "control intl.cpl,, /f:"filename.xml". The question is, how to hook this command in answer file (or unattended.xml), so that after the OS installation this hook is triggered and data and time format will be changed as per my need.

Michael, Please help me on this ( Basically i wanted to create a customesetting.ini file for MOE Regionalisation ,which should be Contains the Regional settings including Proxy, DNS Suffix, Locales, Time Zones, language packs, etc. Also gives details about
the GPOs and Logon scripts that needs to be carried forward to the Win7 environment. This needs to be implemented.) how to create custom.ini file for this need ??