How to change the language in Windows PE via ConfigMgr 2012

A few weeks ago I already did some post about new task sequence variables. This week my post will be about another new (task sequence) variable. This one will probably not be used often, but can be very useful in some specific situations. Think about situations where the company demands that the language of everything that a user can see is displayed in the users’ own language. In this post I will use the German language as an example.

Prerequisites

The only prerequisite for the configuration is that the task sequence resource file (tsres.dll) exists in, in this case, the German language folder (<ConfigMgrInstallFolder>\OSD\bin\x64\00000407\tsres.dll) before updating the boot image. In case the file doesn’t exist, it can be simply installed/ created by following the next steps:

  • Start the Configuration Manager 2012 SP1 Setup Wizard.
  • On the Before You Begin –page, click Next.
  • On the Getting Started –page, select Perform site maintenance or reset this site and click Next.
  • On the Site Maintenance –page, select Modify language configuration and click Next.
  • On the Prerequisite Downloads –page, click Next.
  • On the Server Language Selection –page, select German and click Next.
  • On the Client Language Selection –page, click Next.
  • On the Settings Summary –page, click Next.
  • On the Configuration –page, click Close.

Configuration

BooImaCusNow let’s start with the configuration. The configuration is about knowing that the variable exist and, in this case, also about knowing how to use it. This variable is new in ConfigMgr 2012 SP1, which is currently still in BETA, and is named SMSTSLanguageFolder. It can be used to change the language in WinPE, but it can only be used during a prestart command. To configure this, follow the next steps:

  • Open the Properties of the Boot image.
  • On the Customization –tab,
    • select Enable prestart command and fill in as Command line cscript.exe SetSMSTSLanguageFolder.vbs /LocaleID:1031
      • Content of SetSMSTSLanguageFolder.vbs

      Dim objTSEnvironment, objArguments, sLocaleID

      Set objArguments = Wscript.Arguments
      If WScript.Arguments.Count = 1 Then
          sLocaleID = objArguments.Named.Item(“LocaleID”)
      Else
          Wscript.Echo “Usage: SetSMSTSLanguageFolder.vbs /LocaleID:[LocaleID]”
          Wscript.Quit(0)
      End If

      Set objTSEnvironment = CreateObject(“Microsoft.SMS.TSEnvironment”)
      objTSEnvironment(“SMSTSLanguageFolder”) = sLocaleID

      Wscript.Quit(0)

    • select Include files for the prestart command and select as Source directory the location of the SetSMSTSLanguageFolder.vbs script.
  • Click Ok in the Properties of the Boot Image
  • On the Cofiguration Manager –popup, click Yes and the Update Distribution Wizard will show.
  • On the Summary –page, click Next.
  • On the Completion –page, click Close.
    • Note: To see if the changes are applied to the boot image, keep an eye on the SMSProv.log.

Result

Probably the result is predictable, but I still want to show it. Under here is a before-picture of the “normal” English version followed by an after-picture of the German version.

Before After
TasSeqAssEng TasSeqAssGer

Note

For those wondering why I didn’t use Dutch as an example, as that’s my native language. The reason for that is simple, there is no Dutch language pack available for ConfigMgr SP1 (BETA), yet. In case anyone wants to do this for their own language, just replace German for a different language and replace the LocaleID for the corresponding locale id (list of all Locale IDs see: http://msdn.microsoft.com/en-us/goglobal/bb895996.aspx).

8 thoughts on “How to change the language in Windows PE via ConfigMgr 2012

  1. Very cool. And how can I change the language for keyboard in Windows PE? Currently we have this Problem because we have german Keyboards.

  2. Sorry for the insane late reply! I totally missed your question… There is no variable for changing the keyboard layout during WinPE. The only way this is possible is by some custom scripting.
    Peter

  3. Great post Peter!

    I used a Powershell command to avoid the use of a VBS, here is the command line:

    powershell.exe -executionpolicy bypass -command “”

    Notes:
    -You will need the Powershell Optional Components enabled on the boot image
    -1036 is for French-Standard

    Cheers,
    Florent

  4. Oups, the command disappeared:
    ‘ powershell.exe -executionpolicy bypass -command “” ‘

  5. Hi Peter … do you need assistance for installing a WordPress plugin that does syntax / code highlighting? A customer of fine just ran into the copy/paste error because of smart quotes vs straight quotes ;-)))

Leave a Comment