Working with regional settings during OSD

I know there are different ways to add regional settings to you build during OS deployment, and some of them are quiet confusing… I’m not trying to put any of the methods down, but I would like to suggest an easy way of adding simple stuff like:

  • Keyboard settings
  • Time Zones
  • Local Settings
  • And all the other sysprep settings.

The way I do this is quit simple, and it works every time.. (almost 😉


As we are going to use a couple of MDT scripts,  creating a package with the necessary configuration files is necessary. If you are already running MDT integration, and you have made a Toolkit package you can skip to step 2 and use that package to run your script from using the cscript.exe "%deployroot%\scripts\” syntax.

If you do not want to use MDT integration just add the necessary script files from the MDT package.

  1. Create a package containing “ZTIConfigure.wsf”,”ZTIConfigure.xml” and “ZTIUtility.vbs”  (lets call it ToolKit)
  2. In your TS add a “Run Command Line” step, and run the ZTIConfigure.wsf from the package Toolkit.

    ScreenHunter_01 Nov. 27 15.56
    This is a short bare metal deployment TS (but it works).You must place the script after you run Apply Windows and Network settings, as they both write to your answer files and will overwrite any settings injected by ZTIConfigure.wsf.

    Also they will create the answer file if you did not use one when building the image.

  3. Now we need to add the variables we want applied, to our deployment collection. You can use all the variables found in ZTIConfigure.XML under “</mapping id=” for both XP and VISTA
    For Windows XP and Sysprep.inf For VISTA and Unattend.XML
    image image

  4. Right click you deployment collection, and Click “Modify Collection settings” and open the “Collection Variables” TAB. Click the “star burst” and start typing in variables, like InputLocale and UserLocale with corresponding values. 

     ScreenHunter_02 Nov. 27 16.30

  5. When you have the Variables you need, you Collection Variables could look like this

Basically that is it, just run your TS, and the values will be added to sysprep.inf or unattended.xml.

There is however a small problem with XP (not VISTA). For some reason changing regional settings will not work if we do not add the “InstallFilesPath=” to our Sysprep.inf [Unattended] section.

So how do we do this!!

Well, if we have a  a couple of.

1. Add the line to the sysprep/unattend before capturing the Image

2. If you already have an image, mount it and make the changes to the sysprep/unattend (or add one!)

3. Add a sysprep/unattend file to a package, and point to it from your TS “Apply Operating System” step.

4. Add a InstallFilesPath variable to the ZTIConfigure.xml (Not recommended)


The general Sysprep syntax (for XP at least) regarding regional settings can found in my previous entre…

By | 2009-03-02T11:15:35+00:00 March 2nd, 2009|OS Deployment|8 Comments

About the Author:

Michael Petersen
Twitter: @OSDeployLinkedin: Michael PetersenMicrosoft Community Contributor


  1. rizi May 13, 2009 at 22:05 - Reply

    Michael – I have followed your directions here to a “T” and make OSD still does not work. I work in a library system and the most common keyboard languages are desired. The problem is after capturing the image sysprep wipes my regional settings clean and resorts them back to default. I want to push this image to hundreds of computers using SCCM and automatically install a number of different keyboard languages. Can you offer me any insight to what I may be doing wrong? Like I said, I have followed your instructions here and it still does not work.

    Thank you in advance!

  2. The Calm Before the Storm July 23, 2009 at 6:55 - Reply

    […] […]

  3. Ebbe Hjorth March 17, 2010 at 12:33 - Reply


    Do i need to set these variabels in the sysprep.inf file, or is it enough to set them on the collection?

    • Michael Petersen
      Michael Petersen March 17, 2010 at 12:42 - Reply

      Runing XP, it’s enough to just set them on the collection, just make sure the names ar corect e.g “UserLocale” and not “UserLocal”.. For Win7 you must first create the unattend.xml with refrence to the variables..
      I will make a post on that shortly

      • Roger May 1, 2015 at 22:46 - Reply

        its been a while but….any update on this one….

        For Win7 you must first create the unattend.xml with refrence to the variables..
        I will make a post on that shortly


  4. Ebbe Hjorth March 17, 2010 at 13:10 - Reply

    Super! 🙂

    I can see in the zticonfigure that it reads my collection values, but i still have English keyboard :-/

  5. jimc84 August 13, 2010 at 14:45 - Reply

    Hi Michael,

    You mentioned further changes are required to enable this to work with Windows 7, can you advise what these are?


Leave A Comment