0

У нас есть приложение для хранилища Windows для предприятий, ориентированное на Windows 8.1 и Windows 10. В настоящее время мы используем боковое загрузку для развертывания приложения. Мы должны иметь возможность развертывать приложение для всех пользователей на определенном устройстве.Как обойти приложение Windows для всех пользователей на уже развернутых образах Windows?

Согласно этой Technet статье:

https://technet.microsoft.com/en-us/library/dn613833(v=ws.11).aspx

Вы можете использовать DISM для предоставления приложение для всех пользователей на устройстве, но только для пользователей, которые еще не вошли в систему на этом устройстве:

Предустановленные приложения вводятся в изображение и устанавливаются для каждого пользователя при первом входе пользователя в систему.

Что я хочу сделать, это установить наше приложение для всех текущих пользователей на конкретном устройстве, независимо от того, вошли ли они в это устройство раньше или нет.

Я провел немало исследований, и я не нашел ничего подробного о том, как это сделать.

В настоящее время это возможно с приложениями в Windows Store?

ответ

5

Я решил эту проблему, используя запланированную задачу для установки приложения для пользователей при входе в систему. Вот XML для моей запланированной задачи - не стесняйтесь импортировать XML в планировщик задач для того, чтобы увидеть отформатированную версию:

<?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> 

Существовали несколько дополнительных шагов, я должен был принять для того, чтобы сделать это как бесшовные насколько это возможно:

  1. я переехал установочный пакет моего приложения на C: \ Windows \ System32 \ GroupPolicy \ User \ Scripts \ Logon \ так, что он всегда может быть доступным для планировщика задач
  2. Я PowerGUI (доступен бесплатно в Интернете), чтобы скомпилировать мой сценарий установки Powershell в .exe, чтобы установка выполнялась в фоновом режиме - Окно Powershell всплывает при запуске установки
  3. Я также добавил некоторый код Powershell, чтобы проверить, не установлено ли приложение, чтобы программа установки не запускалась при каждом входе пользователя в систему - она ​​устанавливает только приложение, если приложение не установлено, или если версии приложений различны (это будет означать, что приложение необходимо обновить)

Если кто-то еще встречает более простой способ выполнить это, сообщите мне об этом - я бы любите упростить этот процесс в будущем.

+0

Hi @Eric Я должен реализовать этот продукт для нашего продукта. У вас есть более простая версия этого. Пожалуйста, ответьте на любую помощь, будет заявлено – Shamse

+0

Я этого не делаю. Сожалею. – Eric