Monday, 04 June 2018 18:18

Localizing Inbox Apps during OSD

Written by
Rate this item
(9 votes)

image

As a reader of this blog, I suspect that most of you, like me, are frequenting Twitter. And I bet many of you picked up useful information shared by other IT Pros. Every day when I wake up, I typically spend a few minutes going through my feed, to stay current by consuming small bits of information on a daily basis.

Twitter is part of my daily routine when it comes to learning. There is a reason why Johan Arwidmark keeps emphasizing in his workshops that "if you are not on Twitter, get on Twitter." The thing is, in a world where everything is changing so rapidly, we as IT Pros need to re-baseline how we adopt new technologies and make learning a habit. We need to integrate learning into our daily routine. Just think about it: you are not going to become fit by going to the gym for a week and then stopping, you need to adhere to a daily routine and this analogy can be applied to mastering new skills and staying current in this new world, be it Windows 10, Microsoft Azure or any other agile tech.

This blog post is another demonstration of why being on Twitter is essential these days. It also shows how a clue can quickly lead to a solution.

Quite a few of customers I work with are deploying Windows 10 clients using an English base image and applying language packs in the process. They ran into a little snag involving localizing inbox UWP applications.

Assume the following scenario:

  • You install an English Windows 10 image and inject a language pack into your deployment
  • You block Windows Update or Microsoft Store
  • Some built-in apps, which are being serviced through the store (like calculator, camera, etc.) remain in the English language

The cause, as it often is with Windows 10, is not straightforward:

Inbox UWP applications use language metadata, which you can see/download through the Microsoft Store for Business. This metadata information is not part of a UWP app provisioned during the initial Windows installation and therefore is not included in the lp.cab. These metadata bits are actually downloaded from the Microsoft Store in conjunction with Windows Update (WU triggers the store). This process can take up to 48 hours after a language switch and will not work on isolated networks or, as it is often the case when access to the Microsoft Store is being blocked by the IT department.

Last week, I stumbled upon a tweet by Nicklas Halme in which he pointed out that you can ensure that the inbox apps will include the languages you have added to your image by reinstalling these apps during OSD. All you need is either the App update OPK or the inbox Apps ISO.

Armed with this clue, I set to work. The first step was downloading the latest Windows 10 Inbox Apps ISO (Updated Mar '18) from the VLSC. Then I quickly put together a PowerShell script that enables installation of trusted line-of-business (LOB) or developer-signed Microsoft Store apps, then updates dependencies (such as Advertising.Xaml, Native.Framework, HEVCVideoExtensions, etc.) and finally reinstalls all inbox apps.

Usage: Download the script from my GitHub repository, copy amd64fre and x86fre folders from the SW_DVD9_NTRL_Win_10_1803_32_64_ARM64_MultiLang_-2_App_Update.iso into the script folder and add the PowerShell script to your task sequences. While the script is geared towards Microsoft Deployment Toolkit, it should work with any OSD solution.

Note: The default behavior is to reinstall all built-in apps. This approach may be undesirable as in most cases IT Pros remove a subset of inbox apps from the OS. To save you the tedious work of removing appxbundles which you do not want to reinstall each time a new version of Windows 10 is released, the script will generate an XML file in the %OSDrive%\MININT\SMSOSD\OSDLogs folder, UpdateProvisionedAppxPackages.xml, upon execution. Copy the XML file into the folder where UpdateProvisionedAppxPackages.ps1 script is located and remove the appxbundles from the list which you do not want to reinstall. The script will detect the XML list and use it instead of the full list.

Note: Run this script only after you have installed languages and updates. You can reinstall the apps without removing them first.

Reminder: Alternatively, if you block the Microsoft Store using User GPO instead, then the Windows system can access the Store and download necessary language bits. Additionally, you will need to allow Windows Update to contact Microsoft's content delivery gateway tlu.dl.delivery.mp.microsoft.com to update the Microsoft Store Apps. For more details, read this blog post.

Read 15726 times Last modified on Tuesday, 05 June 2018 07:21

Recent Posts

  • Windows 10 21H2 Built-In Apps: What to Keep
    The development of the Windows 10, version 21H2 is finished and the update will soon be available for download from…
    Written on Wednesday, 20 October 2021 11:41
  • Group Policy Changes in Windows 10 21H2
    As Windows 10, version 21H2 update development winds down, Microsoft is now preparing for the final release of the Windows…
    Written on Wednesday, 20 October 2021 07:20
  • Group Policy Changes in Windows 10 20H1 Preview
    As Windows 10 Vibranium Update (20H1) development winds down, Microsoft is now beginning the phase of checking in the final…
    Written on Tuesday, 14 January 2020 04:51
  • An alternative ESU MAK Activation Solution
    This blog post was shared with me by a colleague of mine, Daniel Dorner, a Microsoft Premier Field Engineer. It’s…
    Written on Wednesday, 04 December 2019 21:04
  • The Case of Missing UE-V Templates
    My customers often deal with unexpected Windows behavior and this case is no different. This particular one is especially interesting…
    Written on Tuesday, 03 September 2019 12:20
  • The Case of Changing Default Printer
    While I sometimes long for the day when I no longer have to deal with unexpected Windows 10 behavior, there’s…
    Written on Wednesday, 14 August 2019 20:36