Sideloading : Installer des applications modernes sur Windows 8 et Windows RT

Les nouvelles applications Windows 8, dites modernes, sont en général installées à partir du Windows Store. Si vous développez des applications modernes, leur déploiement sur les postes clients sans passer par le Windows Store (procédé dit de sideloading) est soumis à quelques contraintes techniques que nous allons détailler ici. Pour gérer le déploiement de ces applications, vous avez plusieurs solutions comme PowerShell, Windows Intune et System Center Configuration Manager (SCCM) 2012 SP1. La première est présentée ici, les deux autres feront l’objet d’un ou de deux articles très prochains.

Avant d’aller plus loin, je vous conseille la lecture de l’article suivant, par Eric Vernié :

Déploiement d’une application Windows 8 (Interface Moderne) en entreprise
https://blogs.msdn.com/b/devosaure/archive/2013/04/19/d-233-ploiement-d-une-application-windows-8-interface-moderne-en-entreprise.aspx

Résumé des contraintes techniques

Commençons donc par les contraintes techniques. Pour faire du sideloading, il faut répondre à ces exigences :

  • La licence :
    • Sur Windows 8 Entreprise joint à un domaine AD, il n’y a rien à faire, il n’y a pas besoin de licence supplémentaire.
    • Sur Windows 8 Entreprise en workgroup, il faut installer et activer une clé de sideloading. Celle-ci est disponible sur le Volume Licensing Service Center (VLSC) (licences en volume) du client.
    • Sur Windows 8 Professionnel dans un domaine ou en workgroup, il faut installer et activer une clé de sideloading. Celle-ci doit être achetée en plus de la licence Windows 8 Professionnel.
    • Sur Windows 8 (la version familiale), le sideloading n’est pas possible.
    • Sur Windows RT, il faut installer et activer une clé de sideloading. Celle-ci doit être achetée. Note : Windows RT ne peut pas joindre un domaine, il est toujours en workroup.
  • Pour autoriser le sideloading, il faut également activer une stratégie “Allow All Trusted Apps” ou “Autoriser l’installation des applications approuvées”. Deux possibilités pour ce faire :
    • Soit dans les stratégies (stratégies de groupe ou stratégie locale) dans Configuration ordinateur – Modèles d’administration – composants Windows – Déploiement de package Appx :
      Stratégie "Autoriser l'installation des applications approuvées"
    • Soit directement dans le registre, en ajoutant la valeur suivante :
      [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Appx]
      "AllowAllTrustedApps"=dword:00000001
  • Enfin, l’application à installer doit être signée par un certificat auquel le poste fait confiance. C’est à dire que le certificat racine de l’autorité de certification qui a émis le certificat doit être présent dans le magasin “Autorités de certification racines de confiance” de l’ordinateur local.
    Note : si le certificat est placé dan sle magasin “Autorités de certification racines de confiance” de l’utilisateur courant, l’installation de l’application échouera.

Quelques détails sur la clé de sideloading

Pour ce qui est des subtilités des questions de licence liées à la clé de sideloading, je vous renvoie à l’article de Cyril Sultan ici :

Windows Intune et Sideloading
https://blogs.technet.com/b/wintunefr/archive/2013/02/26/windows-intune-et-sideloading.aspx

Comme indiqué précédemment, une clé de sideloading n’est pas nécessaire pour Windows 8 Entreprise dans un domaine. Pour Windows 8 Entreprise en workgroup il faut la récupérer sur le site des licences en volume, et pour Windows 8 Pro en domaine ou en workgroup il faut l’acheter (par pack de 100 unités).

Cette fameuse clé a le même format que la clé de produit Windows, et elle s’installe et s’active de la même manière. Le plus simple est d’utiliser le script slmgr.vbs. Dans une console en mode administrateur :

Pour installer la clé :

C:\Windows\system32> cscript slmgr.vbs /ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

Pour activer la clé :

C:\Windows\system32> cscript slmgr.vbs /ato ec67814b-30e6-4a50-bf7b-d55daf729d1e

Note : l’identifiant ec67814b-30e6-4a50-bf7b-d55daf729d1e identifie une clé de sideloading.

Pour vérifier que la clé de sideloading est bien installée et activée :

C:\Windows\system32> cscript slmgr.vbs /dlv

Voici ce que cela donne sur un Windows RT :

slmgr /dlv

La première partie du résultat concerne la clé de Windows, la seconde concerne la clé de sideloading, qui est reconnaissable à la mention 'APPXLOB et à l’identifiant d’activation ec67814b-30e6-4a50-bf7b-d55daf729d1e.

Application des contraintes par script

Ces contraintes peuvent être appliquées en un script PowerShell, à exécuter en tant qu’administrateur :

 New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Appx

Set-ItemProperty `
 -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Appx `
 -Name AllowAllTrustedApps -Value 1

cscript.exe c:\windows\system32\slmgr.vbs /ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

cscript.exe c:\windows\system32\slmgr.vbs /ato ec67814b-30e6-4a50-bf7b-d55daf729d1e

certutil.exe -addstore Root <certificat.cer> 

Ce script doit être exécuté avec les privilèges d’administrateur pour l’écriture dans HKLM, l’ajout et l’activation d’une clé de licence, ainsi que pour l’écriture dans le magasin des autorités de certifications racines de confiance de l’ordinateur local.

Installation manuelle d’une application moderne

Comme Eric l’a détaillé dans son article, une commande PowerShell suffit pour installer une application moderne (package .appx) :

Add-AppxPackage <fichier.appx>

Ce qui donne :

Add-AppxPackage

Les développeurs pourront examiner à loisir le script Add-AppDevPackage.ps1 créé par Visual Studio à côté du package .appx. Ce script est un exemple complet d’installation d’une application moderne, y compris la gestion du certificat. Par contre, la partie concernant la licence développeur n’est pas pertinente dans un déploiement en production.

Quelques références pour terminer :

How to Add and Remove Apps

https://technet.microsoft.com/en-us/library/hh852635.aspx

Try It Out: Sideload Windows Store Apps

https://technet.microsoft.com/en-us/windows/jj874388.aspx?ocid=wc-nl-insider

App Installation Cmdlets in Windows PowerShell

https://technet.microsoft.com/fr-fr/library/hh856045(en-us).aspx

Dans le prochain article nous nous intéresserons au sideloading par l’intermédiaire de Windows Intune, qui simplifie considérablement la tâche en prenant en charge les trois contraintes techniques de façon automatique.

[12 juillet 2013]

  • Ajouté le script d’exemple.
  • Insisté sur le fait que le certificat doit être placé dans le magasin des Autorités de certification racines de confiance de l’ordinateur local, et non pas celui de l’utilisateur courant.

[12 août 2013]

  • Ajouté le lien vers l’article suivant.