We have an enterprise Windows store app targeting Windows 8.1 and Windows 10. We are currently using sideloading to deploy the app. We need to be able to deploy the app for all users on a particular device.
According to this technet article:
https://technet.microsoft.com/en-us/library/dn613833(v=ws.11).aspx
You can use DISM to provision an app for all users on a device, but only for users that have not already logged in on that device:
Provisioned apps are injected in the image and are installed for every user the first time the user logs on.
What I want to do is install our app for all current users on a particular device, regardless of whether or not they’ve logged into that device before.
I’ve done quite a bit of research and I haven’t found anything that details how to accomplish this.
Is this currently possible with Windows store apps?
I solved this issue by using a scheduled task to install the app for users when they login. Here's the xml for my scheduled task - feel free to import this xml into the task scheduler in order to see a formatted version:
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2016-08-11T15:22:07.0657007</Date>
<Author>YourNameHere</Author>
<Description>This task installs and updates the app</Description>
<URI>\app_install_task</URI>
</RegistrationInfo>
<Triggers>
<LogonTrigger>
<Enabled>true</Enabled>
</LogonTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<GroupId>S-1-5-32-545</GroupId>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions>
<Exec>
<Command>C:\Windows\System32\GroupPolicy\User\Scripts\Logon\your_app_bundle\install.exe</Command>
</Exec>
</Actions>
</Task>
There were a few additional steps I had to take in order to make this as seamless as possible:
If anyone else comes across a simpler way to accomplish this, please let me know – I’d love to simplify this process in the future.