Using the Windows Store for Business with MDT 2013
The Windows Store for Business was made available to everyone back in November, corresponding to the Windows 10 version 1511 feature upgrade that was released at the same time. For those that aren't familiar with the Windows Store for Business capabilities, it provides organizations the ability to acquire apps for use throughout their organizations, and in some scenarios, also to distribute those apps.
There are two types of licenses that are available through the Windows Store for Business:
- Online, tied to an Azure Active Directory account. This only supports per-user installation of the apps, and licenses are tracked and managed by the Windows Store for Business.
- Offline, where no Azure Active Directory is needed or used. This supports per-user installation (regardless of the account type) as well as per-machine provisioning (where the app automatically installs for each user when they log onto the PC), and there is no license tracking.
In the case of MDT, it supports per-machine provisioning of apps, and as of MDT 2013 Update 1 it understands how to provision apps from the Windows Store for Business. The main difference between store apps and sideloaded apps: a license file provided by the Windows Store for Business, allowing the app to be installed or provisioned on a machine, without even needing to enable sideloading.
For those of you who aren’t familiar with MDT’s ability to sideload apps, this has been in MDT since the Windows 8 timeframe, but the documentation is lacking. To summarize, you need to have the app files, including dependencies, in the needed folder structure. For example, you could import this folder structure into MDT as a new application, specifying the name of the main .appx file as the command line for the app:
- MyApp
- MyApp.appx
- Dependencies
- x86
- MyDependency.appx
- x64
- MyDependency.appx
- x86
After importing this into MDT (creating an app with source files, specifying the location of the MyApp folder, and specifying a command line of “MyApp.appx”), you could then select that app for provisioning during a task sequence; MDT would automatically create the needed DISM command line to provision the app so that you don’t need to work out that very long command line yourself.
So where does this folder structure come from? Simple, it’s what Visual Studio creates when you build an app. So your developers can just provide you with a copy of that output folder and you’re set. But there’s a little more work needed with the Windows Store for Business: It will provide you all the files that you need, but you need to download them individually and then place them into the needed folder structure manually, before adding the result to MDT.
Let’s look at a real example. Once I sign into the Windows Store for Business from https://www.microsoft.com/business-store, I can mange my inventory of apps and filter it to just the “offline” licensed apps, since these are the ones I could put into my MDT image:
Let’s assume I want everyone to have Onefootball when they first log into Windows 10. (It could happen, maybe they work for a European football club.) When you select that app, you can see the individual files that you need to download, including a license file:
So download the package itself (selecting the x64 architecture, so that you get the files for x86 and x64), an unencoded license (XML file), and each of the required frameworks. Arrange them into a folder structure like I described above:
with three .appx dependency files in each of the x86 and x64 folders. Then import that into MDT as a new app with source files:
specifying the name of the .appx file as the command line (the rest of the name scrolls off the left side for this app):
Then when deploying you can select the app:
Then once I log on as a normal user (not the Administrator) the app shows up on the Start menu:
and launches just fine:
So you can do that with any offline app available in the Windows Store for Business, just like you can do it with any line of business app. (MDT will enable sideloading automatically for the LOB app, but that isn’t necessary for the Windows Store app, as the license file means sideloading isn’t needed.)
To make this process easier, the Configuration Manager and Intune teams, as well as other management tool vendors, are working on leveraging the Windows Store for Business APIs to make this whole process as easy as checking a few boxes, so stay tuned for that.
Comments
- Anonymous
January 11, 2016
Thanks Michael, can't wait to try it. - Anonymous
January 13, 2016
Find some additional info here http://goo.gl/jNnTxA to deploy with provisioning package and SCCM. - Anonymous
January 13, 2016
Only three complaints:
1. Make it so you can download the app and its dependencies as a Zip file with everything included.
2. Encourage more developers to allow this. If an app is already free, is there really any disadvantage to the developer to allow offline deployment?
3. Create a method to allow settings of apps to be preconfigured. Having the apps install on first login is okay, but there may be some apps where I need to configure the default settings so that the user doesn't have to. This would especially be important on a public computer or a kiosk-type computer where I need apps to behave in a certain way without having to set it myself on every computer. - Anonymous
January 13, 2016
- I tried to get them to do that and failed.
2. Yes, we're working on that. For new apps, the default is "opt in" but for existing apps it would be rude to change the rules without the dev's permission :-)
3. There is a generalized way to do with starting in Windows 10 1511, using name-value pairs delivered via MDM (or potentially WMI as an alternative). But apps would need to be modified to support it.
- Anonymous
January 14, 2016
Thanks for the response.
Regarding the third item, would there be a way to this via a tradition image (non MDT)? What we'd ideally like is to roll out an image with the settings pre-configured just like we do with Win32 apps. Right now, Sysprep resets all settings in Windows Store apps back to default, which kills us. If we could tackle this ossue, we really wouldn't have to be as reluctant to push for Windows Store apps. - Anonymous
February 05, 2016
Thanks for this. Following onto number 2 from Dave above. Could you maybe ask the people within MSFT to enable this? One great example is fresh paint, why is it not enable on that? Is there dev resources I can point to on how to enable for an app? I will contact app makers if I can. This would enable apps on lab / cart / shared machines in schools finally! - Anonymous
February 15, 2016
The comment has been removed - Anonymous
May 08, 2016
We use FOG rather than MDT. We have a PowerShell script that runs after deployment to do post-deployment tasks. I am being forced to use FOG, so that won't be changing.Can offline apps be provisioned for all users using PowerShell?