Setting English (Australia) Language Pack for Windows 10 Enterprise

Posted: August 4, 2016 in Windows 10
Tags: , , , , , , , ,

VERY IMPORTANT UPDATE

Adding the English en-GB language pack to Windows 10 1607 as part of an MDT build and capture can cause the indexing service not to work depending on how its being added. See here for the specific scenario. You will note that I have commented on this forum post as I have been working over the past 2 weeks to resolve the issue.

To avoid this indexing issue the language pack needs to be added to the original 1607 media that Microsoft released last July 2016. Do not use the CBB media that was released in November 2016. The install.wim has been serviced and any language packs that are added will either fail or cause problems with the reference image when its deployed.

To summarise, the solution involves:

  1. Injecting the language pack and feature on demand components offline
  2. Adding the latest Windows 10 1607 CU to the reference image as an extra MDT TS step
  3. Using a slightly modified unattend.xml when you deploy the reference image

The Language Pack

The language pack must be added before a Cumulative Update is installed for the first time. And here is essentially where the problem lies – applying a CU during a build and capture and then applying a language pack at a later date is the root cause of the indexing issue.

During my testing I’ve found that injecting the language pack and feature on demand components offline using DISM is the easiest way to accomplish this task.

See this MSDN documentation for the relevant commands on how to mount the install.wim file, inject the cabinet files and then commit and unmount the wim.

I have added the following files in this specific order:

  • Windows-Client-Language-Pack_x64_en-gb.cab
  • Microsoft-Windows-LanguageFeatures-Basic-en-gb-Package.cab
  • Microsoft-Windows-LanguageFeatures-OCR-en-gb-Package.cab
  • Microsoft-Windows-LanguageFeatures-Handwriting-en-gb-Package.cab
  • Microsoft-Windows-LanguageFeatures-Speech-en-gb-Package.cab
  • Microsoft-Windows-LanguageFeatures-TextToSpeech-en-gb-Package.cab
  • Microsoft-Windows-LanguageFeatures-Speech-en-au-Package.cab
  • Microsoft-Windows-LanguageFeatures-TextToSpeech-en-au-Package.cab

The order in which you add these is important.

Once you have your modified install.wim file you can import this into MDT as an Operating System for your build and capture task sequence.

The Cumulative Update

So its pretty important to apply the most current CU available to Windows 10 1607, there are a ton of fixes, we know this. However there was a bug in the WU agent with the original 1607 media which prevented it from contacting a WSUS instance. As a workaround to this I’ve added a step in my MDT task sequence which uses WUSA to install the latest CU and then restart the OS. This occurs prior to the Windows Update patching step that I have in my task sequence.

I now have a Windows 10 Enterprise 1607 install.wim with the language pack and feature on demand components added. I’ve completed an MDT build and capture and I have my patched reference image which I’ve added into Configuration Manager CBB.

The Unattend.xml

The last step we need to look at is making a small adjustment to the unattend.xml file that it being used when the reference image is deployed. Because we now have English US and English GB in the wim file, we need to tell Windows 10 which language to use during the out of box experience phase (OOBE) so we don’t see a prompt asking us which language we would prefer.

Pretty simple – make the following changes to the Language value so it is changed to en-GB.

<InputLocale>0c09:00000409</InputLocale>
<SystemLocale>en-AU</SystemLocale>
<UILanguage>en-GB</UILanguage>
<UserLocale>en-AU</UserLocale>
<UILanguageFallback>en-US</UILanguageFallback>

That’s it! Deploy the new reference image and after a domain user logs in verify that you have the English (Australia) language pack installed and most importantly that the indexing service has correctly indexed the control panel and other items that normally would have failed.

I’ve kept my original blog below for reference only – please note that it is now inaccurate and shouldn’t be followed.

Cheers

Damon

 

 

Original Post

Something that used to be quite simple, is now not so simple. With the advent of Cortana, the English (Australia) Language pack is now no longer included in the base Windows 10 ISO. This does make some sense given the large number of languages that Windows 10 now supports with Cortana in mind.

By default if you deploy Windows 10 Enterprise using Configuration Manager with an Unattend.xml file specifying en-AU as per this example:

<InputLocale>0c09:00000409</InputLocale>
<SystemLocale>en-AU</SystemLocale>
<UILanguage>en-AU</UILanguage>
<UserLocale>en-AU</UserLocale>
<UILanguageFallback>en-US</UILanguageFallback>

You end up with Australia as your region but with English (US) as your default display language.

You also do not have English (Australia) as your Speech Language with no Australian Text-to-speech voice options.

In order to fix this we need to add a Language Pack as well as some additional cabinet files from the relevant Windows 10 Features on Demand ISO available though VLSC.

To be clear – if your deploying Windows 10 1607 x64 Enterprise – you will need to download the Windows 10 1607  x64 Enterprise Language Pack ISO and the Windows 10 Features on Demand ISO as there are individual ISO’s per Windows 10 release.

You will notice that there is no en-AU language pack cab file. This is because the English (Australia) display language is a part of the en-GB cab file. There are specific en-AU Text-to-speech and Speech cab files though which should be added for Cortana functionality.

The Solution

  1. Copy the following cab file from the extracted Windows 10 Language Pack ISO to a source folder on your ConfigMgr source packages share.
    • Windows-Client-Language-Pack_x64_en-gb.cab
  2. Copy the following cab files from the extracted Windows 10 Features on Demand ISO to the same source folder
    • Microsoft-Windows-LanguageFeatures-Handwriting-en-gb-Package.cab
    • Microsoft-Windows-LanguageFeatures-OCR-en-gb-Package.cab
    • Microsoft-Windows-LanguageFeatures-Speech-en-gb-Package.cab
    • Microsoft-Windows-LanguageFeatures-TextToSpeech-en-gb-Package.cab
    • Microsoft-Windows-LanguageFeatures-Basic-en-gb-Package.cab
    • Microsoft-Windows-LanguageFeatures-TextToSpeech-en-au-Package.cab
    • Microsoft-Windows-LanguageFeatures-Speech-en-au-Package.cab
  3. Rename the files to the following, this will ensure they install in the correct order:
    • _1Microsoft-Windows-Client-Language-Pack_x64_en-gb.cab
    • _2Microsoft-Windows-LanguageFeatures-Handwriting-en-gb-Package.cab
    • _3Microsoft-Windows-LanguageFeatures-OCR-en-gb-Package.cab
    • _4Microsoft-Windows-LanguageFeatures-Speech-en-gb-Package.cab
    • _5Microsoft-Windows-LanguageFeatures-TextToSpeech-en-gb-Package.cab
    • _6Microsoft-Windows-LanguageFeatures-Basic-en-gb-Package.cab
    • _7Microsoft-Windows-LanguageFeatures-TextToSpeech-en-au-Package.cab
    • _8Microsoft-Windows-LanguageFeatures-Speech-en-au-Package.cab
  4. Create a ConfigMgr Package i.e. Windows 10 1607 en-AU Language Pack and Distribute to your DP’s
  5. In your Task Sequence add a Run Command Line step after the Setup Windows and ConfigMgr Step, this will call DISM and add the cabinet files2016-08-04_121556
  6. Once the deployment is finished, logon and open the Settings App. Open Time & Language and you should see under Region & language that English (Australia) is present with “Language Pack Installed”. If you open the Speech option, you should see English (Australia) as the spoken language.

2016-08-04_122457

2016-08-04_122514

Cheers

Damon

 

Advertisements
Comments
  1. KW says:

    Thanks for this. Just updated my TS today with your recommendations, once I work out why it’s blue screening on login I will be happy to have this going out to our test group!

  2. Paul says:

    Hi Damon, any advice for applying the language packs when using the new OS upgrade task sequence (in-place upgrade) introduced with SCCM 1602?

  3. Sachin says:

    Hi Damon,
    Your workaround works to add the Language packs but I am unable to get the TS set the AU as default.
    If I pass the below in my unattend.xml
    en-AU
    en-AU
    en-AU
    en-AU
    en-US

    I get prompted to select a language during my image deployment.
    However if I pass en-US for all variable in my unattend.xml, I do not get prompted to select the language, but the default language is set to United States once the image finishes deploying.

    Anything I may be missing??? Is there an additional step?

    • Damon Johns says:

      Sounds like there is a problem with your unattend.xml

      Open it up using System Image Manager and check that you have the wow64_Microsoft-Windows-International-Core_neutral catalog option added to the specialize pass. You should have the InputLocal set to 0c09:00000409, SystemLocale set to en-AU, UILanguage set to en-AU, UILanguageFallback set to en-US and UserLocale set to en-AU.

      Also make sure that the wow64_Microsoft-Windows-Internal-Core_neutral catalog option is added to the oobeSystem pass – same values as per the specialize pass.

      Let me know if you would like some screen shots of my unattend.xml

      Cheers
      Damon

      • Sachin Kabbur says:

        Hi Damon,
        This is my configuration…

        UNATTEND.XML

        %OSDInputLocale%
        %OSDSystemLocale%
        %OSDUILanguage%
        %OSDUserLocale%
        en-US

        SCCM TS:

        [cid:image005.jpg@01D203C5.84657D10]

        When the above is true and I deploy the TS on to a VM I get the below screen:

        [cid:image006.jpg@01D203C5.84657D10]

        Post this the TS doesn’t complete and the language packs do not apply

        [cid:image008.jpg@01D203C5.84657D10]

        Yet when I pass the values directly in my unattend.xml, e.g en-US the image goes through all the TS and installs as I intend it to (with the exception of setting the country/region settings as below)

        [cid:image012.jpg@01D203C5.84657D10]

        Not sure what I am missing here. Could it be my reference image, I recall setting the region to Australia and installing language packs on it. Does your method work on a vanilla reference image that does not have language pack downloaded and installed on it??

        Any help is greatly appreciated.

        PS: I am going to create another reference image, this time without downloading the language packs on it.
        BTW I am trying this for Windows 10 1607.

        Regards,

        Sachin Kabbur

        D: +61 3 9914 2144 (x1144)
        E: sachin@ethanservices.com

      • Damon Johns says:

        Sorry but I’m not using variables to set my language settings so I can’t really comment on the process that your using.

        I’ve deployed this solution with Windows 10 1607 successfully without any language packs or region settings added to the reference image (so you could test by using the Microsoft 1607 ISO without any changes) – I would recommend either setting the values specifically in your Unattend.xml that is referenced in your Task Sequence or troubleshooting why your variables are not being honored – perhaps take a look at the Windows installation log files and smsts.log files.

        Cheers
        Damon

      • Sachin Kabbur says:

        Hi Damon,
        Thanks for your response.

        I found out the issue I was having with the language packs, (a silly thing that I overlooked). Basically because I had already downloaded the language pack on my reference image, the TS failed to install it again giving an error that the package is not required. I had also forgotten to check the Continue on error for this TS and hence the remainder of the TS did not run.
        The issue now is that the image does not set to Australia as default and I can see the language packs made available.

        [cid:image001.jpg@01D20439.DA36FF10]

        Regarding the Unattend.xml, I have reverted back to using specific values in my Unattend.xml file. I am using Windows 10 1607. Just cannot set the default country or region to Australia. Its driving me insane atm ☺

        Regards,

        Sachin Kabbur

        D: +61 3 9914 2144 (x1144)
        E: sachin@ethanservices.com

      • Sachin Kabbur says:

        Hi Damon,
        I got it working now…

        Like I said it was my silly mistake that I found out

        Changed the to en-au and that did the trick…

        Next job is to investigate the variables ☺

        Thanks for your help mate. The language pack trick was good to know.

        Regards,

        Sachin Kabbur

        D: +61 3 9914 2144 (x1144)
        E: sachin@ethanservices.com

  4. Damon Johns says:

    No worries Sachin, I’m glad you have resolved the problem

    • Sachin Kabbur says:

      Hi Damon,
      Just tested the application of Language packs on my reference image (WORKGROUP), and for some reason the language pack does not apply to this. I have injected the TS in the same spot as when I do during the SOE deploy TS. It does not work on the Reference image TS but works on the SOE deploy TS. Strange I think.
      Tried looking at the SMSTS logs but the step isn’t even listed.

      Regards,

      Sachin Kabbur

      D: +61 3 9914 2144 (x1144)
      E: sachin@ethanservices.com

      • Paul says:

        Hi Sachin,

        I’m having the exact same issue as you and cannot work it out either, not using the variables but injecting the language pack via DISM offline or online as part of the TS doesn’t seem to make any difference. Likewise the latest CU which I was hoping might have had some fix hasn’t helped. I am using the original 1507 ADK still so wondering if perhaps the 1607 ADK might also help.

        In your previous reply you said “Changed the to en-au and that did the trick…” I think you meant to say “Changed the to en-AU ? can you please elaborate on what you changed to fix it for you.

        Thanks

      • Sachin says:

        Hi Paul,
        The following settings for Language worked for me.
        My Unattend.xml contains the below variables

        %OSDInputLocale%
        %OSDSystemLocale%
        %OSDUILanguage%
        %OSDUserLocale%
        %UILanguageFallBack%

        In the TS I inject
        InputLocale – 0c09:00000409
        SystemLocale – en-US
        UILanguage – en-US
        UserLocale – en-AU
        UILanguageFallBack – en-US

        This has worked for me for Windows 10 1607.

        Hope it helps you too.

      • Paul says:

        Changed the “WHAT” to en-AU ?

  5. KW says:

    Gday Damon,

    Have you come across this issue with your OSD?
    (Having en-US + en-AU causes indexing issues)

    https://social.technet.microsoft.com/Forums/en-US/d30a4ce7-0f6b-4a9b-aaab-ce0b9c3a166a/issue-with-windows-10-search-indexing-and-display-languages-resulting-in-these-results-may-be?forum=win10itprogeneral

    I’ve checked that this is the case — if I deploy without en-AU everything is fine.

    I’ve been banging my head against a wall trying to figure this out. Trying a fresh raw image of the november 1607.1 release to see if there’s anything different right now but this is driving me crazy.

    I don’t want to remove en-US altogether for reasons stated at the end of the post linked.

    • Damon Johns says:

      Hi KW,

      You have pointed out something that has been reported to me. However I haven’t had the time to investigate the cause.

      We are in the same position in that we have to have en-AU present. We could look at removing en-US but its anyone’s guess what the fallout from this would be! Having multiple languages in an OS ‘should’ be perfectly acceptable and would be required for a lot of Enterprise’s.

      Let me do some checking to see if its still a problem for us or not as the last time it was mentioned was last year. I will also check the latest insider build to see if the problem is still present.

      Regards
      Damon

    • Damon Johns says:

      Verified that I have the same issue. Not sure when its started to occur but I’m pretty positive the issue wasn’t present when I first created my 1607 reference image. Anyway, I’ve manually fixed it by browsing to C:\Users\username\AppData\Local\Packages\windows.immersivecontrolpanel_cw5n1h2txyewy\LocalState Right-clicking the Indexed folder > Properties > Advanced > Check Allow files in this folder to have indexed in addition to file properties. Click Apply and Exit.
      I then restarted and I could then see that a language folder gets created. I will look at working out a way to push this out as a fix through a GPO this week.

      Cheers
      Damon

      • KW says:

        I’m glad i’m not going crazy! It only started with 1607 for us. I’ve found that using lpksetup /u en-GB also resolves the issue and doesn’t seem to effect the en-AU regional and language settings at all. I am going to try adding this is a step in the task sequence but ideally I guess it would be best to get en-AU installed without en-GB bundling itself in.

    • Damon Johns says:

      Hi KW, I now have modified by blog with a proper fix for this issue.

      Cheers
      Damon

  6. Damon Johns says:

    Initial testing for my environment shows that triggering a rebuild of the index file “Windows.edb” located at C:\ProgramData\Microsoft\Search\Data\Applications\Windows, then performing a restart, fixes the problem. I’m going to do some testing this week to see if I can script the trigger for rebuilding the index file into my OSD Task Sequence. It would appear that the OS isn’t handling the introduction of an additional language pack during OSD anymore in that this index file is corrupted.

    • KW says:

      I’ve confirmed that adding a Run Command Line step after installing the Language pack resolves this:

      Run Command Line:
      lpksetup /u en-GB /r /s

      cheers

  7. John says:

    Hi Damon,

    Ran your updated method injecting the language pack to the original 1607 install.wim, adjusted the unattend.xml as below.

    0c09:00000409
    en-AU
    en-GB
    en-AU
    en-US

    I am still getting the two language’s UK and US, at the end of the build and capture.

    Did you run across this at all?

    Cheers

    • Damon Johns says:

      Hi John, yes that’s correct. You will still have the default English (US) language present as well as English (Australia). This is the correct way to manage the scenario as its not possible to remove the default language. However you should have the default display language set to English (Australia) following the deployment of the reference image “with” the indexing working. In the settings app in Windows 10 – you should only see English (Australia) as the display language. English (US) should not be present.

  8. John says:

    Hi Damon,

    Thanks for the reply, I think above someone else had (I get prompted to select a language during my image deployment), I jam getting the same thing being prompted to select a language, there might be something missing with my unattend.xml? Have followed your new suggestions above with no luck.

    • Damon Johns says:

      Ah sorry misunderstood you. Make sure you have those language settings in your unattend.xml in both the specialize and oobeSystem pass. I originally had that issue but resolved it by adjusting my unattend.xml

      I’m unable to post an image and or code with xml tags in the comments section. If your still having issues let me know and I will post my unattend.xml contents to the blog.

      Cheers
      Damon

  9. John says:

    Hi Damon,

    Thanks for the reply I will double check the unattend.xml pretty sure I have placed the language settings in both specialize and oobeSystem pass. Could I possibly if I post my xml to you to double check it? There is nothing to crazy in it.

    Cheers

    John

  10. kevin says:

    Hi Damon, thx for this article. What iso do you get Windows-Client-Language-Pack_x64_en-gb.cab from? Having trouble locating it. Thought it might have been SW_DVD5_NTRL_Win_10_Svr_64Bit_MultiLang_Language_Pack_X20-08995.ISO

  11. Steven says:

    How do you set the en-AU as the default language for all users after the LP is installed? When the OS is deployed and I log in as any user, everything is set to en-US by default

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s