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
Now 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 IfSet objTSEnvironment = CreateObject(“Microsoft.SMS.TSEnvironment”)
objTSEnvironment(“SMSTSLanguageFolder”) = sLocaleIDWscript.Quit(0)
- select Include files for the prestart command and select as Source directory the location of the SetSMSTSLanguageFolder.vbs script.
- select Enable prestart command and fill in as Command line cscript.exe SetSMSTSLanguageFolder.vbs /LocaleID:1031
- 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 |
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).
Very cool. And how can I change the language for keyboard in Windows PE? Currently we have this Problem because we have german Keyboards.
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
Had to replace ” and ” with ” for the script to work.
Thanks!
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
Oups, the command disappeared:
‘ powershell.exe -executionpolicy bypass -command “” ‘
I completely missed your useful comment Florent, my apologies. Thank you!
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 ;-)))
Thank you for the offer Torsten! I think I know what went wrong, I changed the theme a while ago without checking the impact on the older posts. I’ll fix it. Thanks!
How do I know what folder is for what language? I am trying to do this for Portuguese (Brazil) and cannot differentiate one folder from another.
Hi James,
You can look at the language id as shown in the referenced article.
Regards, Peter