Gestion d'applications d'entreprise

Cet article décrit l’une des fonctionnalités clés des fonctionnalités de Windows Mobile Gestion des appareils (MDM) : la possibilité de gérer le cycle de vie des applications sur tous les appareils Windows. Cela inclut les applications du Windows Store et non-Store, qui peuvent être gérées en mode natif via GPM.

En utilisant la gestion des appareils mobiles Windows pour gérer les cycles de vie des applications, les administrateurs peuvent déployer et gérer les mises à jour, supprimer les applications obsolètes ou inutilisées et s’assurer que tous les appareils disposent des applications nécessaires pour répondre aux besoins de l’organization. Cette fonctionnalité simplifie le processus de gestion des applications et fait gagner du temps et des efforts aux professionnels de l’informatique.

Objectifs de gestion des applications

Windows offre aux serveurs d’administration la possibilité d’effectuer les opérations suivantes :

  • Déployer des applications et des licences du Store hors connexion
  • Déployer des applications métier (applications hors Windows Store)
  • Inventorier toutes les applications d’un utilisateur (applications du Windows Store et non-Store)
  • Inventorier toutes les applications pour un appareil (applications du Windows Store et non-Store)
  • Désinstaller toutes les applications d’un utilisateur (applications du Windows Store et non-Store)
  • Approvisionner les applications afin qu’elles soient installées pour tous les utilisateurs d’un appareil exécutant des éditions de bureau Windows (Famille, Professionnel, Entreprise et Éducation)
  • Supprimer l’application provisionnée sur l’appareil exécutant des éditions de bureau Windows

Applications d’inventaire

Windows vous permet d’inventorier toutes les applications déployées sur un utilisateur et d’inventorier toutes les applications pour tous les utilisateurs d’un appareil Windows. Le fournisseur de services de configuration EnterpriseModernAppManagement inventorie les applications empaquetées et n’inclut pas les applications Win32 traditionnelles installées via MSI ou exécutables. Lorsque les applications sont inventoriés, elles sont séparées en fonction des classifications d’applications suivantes :

  • Store : applications acquises à partir du Microsoft Store.
  • nonStore : applications qui n’ont pas été acquises à partir du Microsoft Store.
  • Système : applications qui font partie du système d’exploitation et ne peuvent pas être désinstallées. Cette classification est en lecture seule et ne peut être inventorié que.

Chaque application est identifiée par un nom de famille de packages et un ou plusieurs noms complets de package, et les applications sont regroupées en fonction de leur origine. Le csp EnterpriseModernAppManagement affiche ces classifications en tant que nœuds.

L’inventaire peut être exécuté de manière récursive à n’importe quel niveau à partir du nœud AppManagement via le nom complet du package. Vous pouvez également choisir d’inventorier uniquement des attributs spécifiques. L’inventaire est spécifique au nom complet du package et répertorie les packs groupés et de ressources, le cas échéant, sous le nom de la famille de packages.

Pour plus d’informations sur chaque nœud, consultez les descriptions détaillées fournies dans le fournisseur de services de configuration EnterpriseModernAppManagement.

Inventaire des applications

Vous pouvez utiliser le fournisseur de services de configuration EnterpriseModernAppManagement pour rechercher toutes les applications installées pour un utilisateur ou un appareil. La requête retourne toutes les applications, même si elles ont été installées à l’aide de GPM ou d’autres méthodes. L’inventaire peut s’exécuter au niveau de l’utilisateur ou de l’appareil. L’inventaire au niveau de l’appareil retourne des informations pour tous les utilisateurs sur l’appareil.

L’inventaire complet d’un appareil peut être gourmand en ressources en fonction du matériel et du nombre d’applications installées. Les données retournées peuvent également être volumineuses. Vous souhaiterez peut-être segmenter ces demandes pour réduire l’impact sur les clients et le trafic réseau.

  • Exemple de requête pour toutes les applications sur l’appareil.

    <!-- Get all apps under AppManagement -->
    <Get>
       <CmdID>1</CmdID>
       <Item>
          <Target>
             <LocURI>./Device/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement?list=StructData</LocURI>
          </Target>
       </Item>
    </Get>
    
  • Exemple de requête pour une application spécifique pour un utilisateur.

    <!-- Get all information of a specific app for a user -->
    <Get>
       <CmdID>1</CmdID>
       <Item>
          <Target>
             <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement/AppStore/{PackageFamilyName}?list=StructData</LocURI>
          </Target>
       </Item>
    </Get>
    

Inventaire des licences du magasin

Vous pouvez utiliser le fournisseur de services de configuration EnterpriseModernAppManagement pour rechercher toutes les licences d’application installées pour un utilisateur ou un appareil. La requête retourne toutes les licences d’application, événement si elles ont été installées via GPM ou d’autres méthodes. L’inventaire peut s’exécuter au niveau de l’utilisateur ou de l’appareil. L’inventaire au niveau de l’appareil retourne des informations pour tous les utilisateurs sur l’appareil.

Pour obtenir une description détaillée de chaque nœud, consultez EnterpriseModernAppManagement CSP.

Remarque

L’ID de licence dans le csp est l’ID de contenu de la licence.

  • Voici un exemple de requête pour toutes les licences d’application sur un appareil.

    <!-- Get all app licenses for the device -->
    <Get>
       <CmdID>1</CmdID>
       <Item>
          <Target>
             <LocURI>./Device/Vendor/MSFT/EnterpriseModernAppManagement/AppLicenses/StoreLicenses?list=StructData</LocURI>
          </Target>
       </Item>
    </Get>
    
  • Voici un exemple de requête pour toutes les licences d’application d’un utilisateur.

    <!-- Get a specific app license for a user -->
    <Get>
       <CmdID>1</CmdID>
       <Item>
          <Target>
             <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppLicenses/StoreLicenses/{license id}?list=StructData</LocURI>
          </Target>
       </Item>
    </Get>
    

Permettre à l’appareil d’installer des applications non-Store

Il existe deux types d’applications de base que vous pouvez déployer :

  • Applications du Store.
  • Applications d’entreprise signées.

Pour déployer des applications d’entreprise signées, vous devez activer un paramètre sur l’appareil afin d’autoriser les applications approuvées. Les applications peuvent être signées par une racine approuvée par Microsoft (par exemple, Symantec), une racine déployée par l’entreprise ou des applications auto-signées. Cette section décrit les étapes de configuration de l’appareil pour le déploiement d’applications non-magasin.

Déverrouiller l’appareil pour les applications non-Windows Store

Pour déployer des applications qui ne proviennent pas du Microsoft Store, vous devez configurer la stratégie ApplicationManagement/AllowAllTrustedApps . Cette stratégie permet l’installation d’applications non-Store sur l’appareil s’il existe une chaîne à un certificat sur l’appareil. L’application peut être signée avec un certificat racine sur l’appareil (par exemple, Symantec Enterprise), un certificat racine appartenant à l’entreprise ou un certificat d’approbation de pair déployé sur l’appareil. Pour plus d’informations sur le déploiement d’une licence utilisateur, consultez Déployer une licence hors connexion sur un utilisateur.

La stratégie AllowAllTrustedApps permet l’installation d’applications approuvées par un certificat dans le Personnes approuvé sur l’appareil, ou un certificat racine dans la racine de confiance de l’appareil. La stratégie n’est pas configurée par défaut, ce qui signifie que seules les applications du Microsoft Store peuvent être installées. Si le serveur d’administration définit implicitement la valeur sur désactivé, le paramètre est désactivé dans le panneau paramètres de l’appareil.

Voici un exemple :

<!-- Get policy (Default)-->
<Get>
<CmdID>1</CmdID>
<Item>
   <Target>
      <LocURI>./Vendor/MSFT/Policy/Result/ApplicationManagement/AllowAllTrustedApps?list=StructData</LocURI>
   </Target>
   </Item>
</Get>
<!-- Update policy -->
<Replace>
<CmdID>2</CmdID>
<Item>
   <Target>
      <LocURI>./Vendor/MSFT/Policy/Config/ApplicationManagement/AllowAllTrustedApps</LocURI>
   </Target>
   <Meta>
      <Format>int</Format>
      <Type>text/plain</Type>
   </Meta>
   <Data>1</Data>
</Item>
</Replace>

Déverrouiller l’appareil pour le mode développeur

Le développement d’applications sur des appareils Windows ne nécessite plus de licence spéciale. Vous pouvez activer le débogage et le déploiement d’applications non empaquetées à l’aide de la stratégie ApplicationManagement/AllowDeveloperUnlock dans le csp Policy.

La stratégie AllowDeveloperUnlock active le mode de développement sur l’appareil. AllowDeveloperUnlock n’est pas configuré par défaut, ce qui signifie que seules les applications du Microsoft Store peuvent être installées. Si le serveur d’administration définit explicitement la valeur sur off, le paramètre est désactivé dans le panneau des paramètres de l’appareil.

Le déploiement d’applications sur des appareils Windows nécessite la présence d’une chaîne à un certificat sur l’appareil. L’application peut être signée avec un certificat racine sur l’appareil (par exemple, Symantec Enterprise), un certificat racine appartenant à l’entreprise ou un certificat d’approbation de pair déployé sur l’appareil.

Voici un exemple :

<!-- Get policy (Default)-->
<Get>
  <CmdID>1</CmdID>
  <Item>
    <Target>
      <LocURI>./Vendor/MSFT/Policy/Result/ApplicationManagement/AllowDeveloperUnlock?list=StructData</LocURI>
    </Target>
  </Item>
</Get>
<!-- Update policy -->
<Replace>
  <CmdID>2</CmdID>
  <Item>
    <Target>
      <LocURI>./Vendor/MSFT/Policy/Config/ApplicationManagement/AllowDeveloperUnlock</LocURI>
    </Target>
    <Meta>
      <Format>int</Format>
      <Type>text/plain</Type>
    </Meta>
    <Data>1</Data>
  </Item>
</Replace>

Installation d’applications

Vous pouvez installer des applications sur un utilisateur spécifique ou sur tous les utilisateurs d’un appareil. Les applications sont installées directement à partir du Microsoft Store. Ou bien, ils sont installés à partir d’un emplacement hôte, tel qu’un disque local, un chemin UNC ou un emplacement HTTPS. Utilisez le nœud AppInstallation du fournisseur de services de configuration EnterpriseModernAppManagement pour installer des applications.

Déployer des applications sur un utilisateur à partir du Windows Store

Pour déployer une application sur un utilisateur directement à partir du Microsoft Store, le serveur d’administration exécute une commande Add and Exec sur le nœud AppInstallation du fournisseur de services de configuration EnterpriseModernAppManagement. Cette fonctionnalité est uniquement prise en charge dans le contexte utilisateur, et non dans le contexte de l’appareil.

Si vous avez acheté une application sur le Store pour Entreprises et que l’application est spécifiée pour une licence en ligne, l’application et la licence doivent être acquises directement auprès du Microsoft Store.

Remarque

Les Microsoft Store pour Entreprises et Microsoft Store pour Éducation sont mis hors service. Pour plus d’informations, consultez Microsoft Store pour Entreprises et Éducation mis hors service le 31 mars 2023.

Voici les conditions requises pour ce scénario :

  • L’application est affectée à un utilisateur Microsoft Entra identité dans le Windows Store pour Entreprises. Vous pouvez attribuer directement dans le Windows Store pour Entreprises ou via un serveur d’administration.
  • L’appareil nécessite une connectivité au Microsoft Store.
  • Les services du Microsoft Store doivent être activés sur l’appareil. L’interface utilisateur du Microsoft Store peut être désactivée par l’administrateur d’entreprise.
  • L’utilisateur doit être connecté avec son identité Microsoft Entra.

Voici un exemple :

<Exec>
  <CmdID>1</CmdID>
  <Item>
    <Target>
      <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName}/StoreInstall</LocURI>
    </Target>
    <Meta>
      <Format xmlns="syncml:metinf">xml</Format>
    </Meta>
    <Data>
      <Application id="{ProductID}" flags="0" skuid=" " />
    </Data>
  </Item>
</Exec>

Voici les modifications apportées à la version précédente :

  1. La {CatID} référence doit être mise à jour vers {ProductID}. Cette valeur est acquise dans le cadre de l’outil de gestion du Windows Store pour Entreprises.
  2. La valeur des indicateurs peut être 0 ou 1.
    • 0 : l’outil de gestion rappelle la synchronisation du Windows Store pour Entreprises pour attribuer à un utilisateur un siège d’une application.
    • 1 : L’outil de gestion ne rappelle pas la synchronisation du Windows Store pour Entreprises pour attribuer à un utilisateur un siège d’une application. Le csp revendique un siège s’il en existe un.
  3. est skuid un nouveau paramètre obligatoire. Cette valeur est acquise dans le cadre de la synchronisation de l’outil Windows Store pour Entreprises avec l’outil de gestion.

Déployer une licence hors connexion sur un utilisateur

Si vous avez acheté une application à partir du Windows Store pour Entreprises, la licence d’application doit être déployée sur l’appareil. La licence d’application doit uniquement être déployée dans le cadre de l’installation initiale de l’application. Pendant une mise à jour, seule l’application est déployée sur l’utilisateur.

Dans SyncML, vous devez spécifier les informations suivantes dans la Exec commande :

  • ID de licence : cet ID est spécifié dans le LocURI. L’ID de licence de la licence hors connexion est appelé « ID de contenu » dans le fichier de licence. Vous pouvez récupérer ces informations à partir du téléchargement de licence encodé en Base 64 à partir du Windows Store pour Entreprises.
  • Contenu de la licence : ce contenu est spécifié dans la section données. Le contenu de la licence est l’objet blob codé en base 64 de la licence.

Voici un exemple d’installation de licence hors connexion.

<Exec>
   <CmdID>1</CmdID>
   <Item>
      <Target>
         <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppLicenses/StoreLicenses/{LicenseID}/AddLicense</LocURI>
      </Target>
      <Meta>
         <Format xmlns="syncml:metinf">xml</Format>
      </Meta>
      <Data><License Content="{LicenseBlob}"></Data>
   </Item>
</Exec>

Déployer des applications sur un utilisateur à partir d’un emplacement hébergé

Si vous avez acheté une application sur le Windows Store pour Entreprises et que l’application est spécifiée pour une licence hors connexion ou que l’application est une application non-Store, l’application doit être déployée à partir d’un emplacement hébergé.

Voici les conditions requises pour ce scénario :

  • L’emplacement de l’application peut être un système de fichiers local (C :\StagedApps\app1.appx), un chemin UNC (\\server\share\app1.apx) ou un emplacement HTTPS (https://contoso.com/app1.appx).
  • L’utilisateur doit avoir l’autorisation d’accéder à l’emplacement du contenu. Pour les services HTTPs, vous pouvez utiliser l’authentification serveur ou l’authentification par certificat à l’aide d’un certificat associé à l’inscription. Les emplacements HTTP sont pris en charge, mais non recommandés en raison de l’absence d’exigences d’authentification.
  • L’appareil n’a pas besoin d’être connecté au Microsoft Store, aux services du magasin ou d’activer l’interface utilisateur du Microsoft Store.
  • L’utilisateur doit être connecté, mais l’association avec Microsoft Entra’identité n’est pas nécessaire.

Remarque

Vous devez déverrouiller l’appareil pour déployer des applications non Store ou vous devez déployer la licence d’application avant de déployer les applications hors connexion. Pour plus d’informations, consultez Déployer une licence hors connexion sur un utilisateur.

La commande Ajouter pour le nom de la famille de packages est nécessaire pour garantir la suppression correcte de l’application lors de la désinscription.

  • Voici un exemple d’installation d’application métier.

    <!-- Add PackageFamilyName -->
    <Add>
       <CmdID>0</CmdID>
       <Item>
          <Target>
             <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName}</LocURI>
          </Target>
       </Item>
    </Add>
    <!-- Install appx -->
    <Exec>
       <CmdID>1</CmdID>
       <Item>
          <Target>
             <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName}/HostedInstall</LocURI>
          </Target>
          <Meta>
             <Format xmlns="syncml:metinf">xml</Format>
          </Meta>
          <Data><Application PackageUri="\\server\share\HelloWorld10.appx" /></Data>
       </Item>
    </Exec>
    
  • Voici un exemple d’installation d’application avec des dépendances.

    <!-- Add PackageFamilyName -->
    <Add>
       <CmdID>0</CmdID>
       <Item>
          <Target>
             <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName</LocURI>
          </Target>
       </Item>
    </Add>
    <!-- Install appx with deployment options and framework dependencies-->
    <Exec>
       <CmdID>1</CmdID>
       <Item>
          <Target>
             <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName}/HostedInstall</LocURI>
          </Target>
          <Meta>
             <Format xmlns="syncml:metinf">xml</Format>
          </Meta>
          <Data>
             <Application PackageUri="\\server\share\HelloWorld10.appx" DeploymentOptions="0" >
                <Dependencies>
                          <Dependency PackageUri="\\server\share\HelloWorldFramework.appx" />
                    <Dependency PackageUri="\\server2\share\HelloMarsFramework.appx" />
                </Dependencies>
            </Application>
          </Data>
       </Item>
    </Exec>
    
  • Voici un exemple d’installation d’application avec des dépendances et des packages facultatifs.

    <!-- Add PackageFamilyName -->
    <Add>
       <CmdID>0</CmdID>
       <Item>
          <Target>
             <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName</LocURI>
          </Target>
       </Item>
    </Add>
    <!-- Install appx with deployment options and framework dependencies-->
    <Exec>
       <CmdID>1</CmdID>
       <Item>
          <Target>
             <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName}/HostedInstall</LocURI>
          </Target>
          <Meta>
             <Format xmlns="syncml:metinf">xml</Format>
          </Meta>
          <Data>
             <Application PackageUri="\\server\share\HelloWorld10.appx" DeploymentOptions="0" >
                <Dependencies>
                    <Dependency PackageUri="\\server\share\HelloWorldFramework.appx" />
                    <Dependency PackageUri="\\server2\share\HelloMarsFramework.appx" />
                </Dependencies>
                <OptionalPackages>
                    <Package PackageUri="\\server\share\OptionalPackage1.appx"
                             PackageFamilyName="/{PackageFamilyName}" />
                    <Package PackageUri="\\server2\share\OptionalPackage2.appx"
                             PackageFamilyName="/{PackageFamilyName}" />
                </OptionalPackages>
            </Application>
          </Data>
       </Item>
    </Exec>
    

Provisionner des applications pour tous les utilisateurs d’un appareil

L’approvisionnement vous permet d’effectuer une phase intermédiaire de l’application sur l’appareil et tous les utilisateurs de l’appareil peuvent faire inscrire l’application lors de leur prochaine connexion. Cette fonctionnalité est uniquement prise en charge pour les applications achetées dans le Windows Store pour Entreprises, et l’application est spécifiée pour une licence hors connexion ou l’application est une application non-Store. L’application doit être proposée à partir d’un emplacement hébergé. L’application est installée en tant que système local. Pour effectuer l’installation sur un partage de fichiers local, le « système local » de l’appareil doit avoir accès au partage.

Voici les conditions requises pour ce scénario :

  • L’emplacement de l’application peut être le système de fichiers local (C :\StagedApps\app1.appx), un chemin UNC (\\server\share\app1.apx) ou un emplacement HTTPS (https://contoso.com/app1.appx\)
  • L’utilisateur doit avoir l’autorisation d’accéder à l’emplacement du contenu. Pour les services HTTPs, vous pouvez utiliser l’authentification serveur ou l’authentification par certificat à l’aide d’un certificat associé à l’inscription. Les emplacements HTTP sont pris en charge, mais non recommandés en raison de l’absence d’exigences d’authentification.
  • L’appareil n’a pas besoin d’avoir une connectivité au Microsoft Store ou aux services du magasin activés.
  • L’appareil n’a pas besoin d’identité Microsoft Entra ou d’appartenance au domaine.
  • Pour l’application nonStore, votre appareil doit être déverrouillé.
  • Pour les applications hors connexion du Windows Store, les licences requises doivent être déployées avant de déployer les applications.

Pour approvisionner l’application pour tous les utilisateurs d’un appareil à partir d’un emplacement hébergé, le serveur d’administration exécute une commande Add and Exec sur le nœud AppInstallation dans le contexte de l’appareil. La commande Ajouter pour le nom de la famille de packages est nécessaire pour garantir la suppression correcte de l’application lors de la désinscription.

Remarque

Lorsque vous supprimez l’application provisionnée, elle ne la supprime pas des utilisateurs qui ont déjà installé l’application.

  • Voici un exemple d’installation d’application :

    <!-- Add PackageFamilyName -->
    <Add>
        <CmdID>0</CmdID>
        <Item>
           <Target>
              <LocURI>./Device/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName</LocURI>
           </Target>
        </Item>
    </Add>
    <!-- Provision appx to device -->
    <Exec>
        <CmdID>1</CmdID>
        <Item>
           <Target>
              <LocURI>./Device/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName}/HostedInstall</LocURI>
           </Target>
           <Meta>
              <Format xmlns="syncml:metinf">xml</Format>
           </Meta>
           <Data><Application PackageUri="\\server\share\HelloWorld10.appx" /></Data>
        </Item>
    </Exec>
    

    La commande HostedInstall Exec contient un nœud Données qui nécessite un code XML incorporé. Voici les conditions requises pour le xml de données :

    • Le nœud d’application a un paramètre obligatoire, PackageURI, qui peut être un emplacement de fichier local, UNC ou HTTPS.
    • Les dépendances peuvent être spécifiées si nécessaire pour être installées avec le package. Cette option est facultative.

    Le paramètre DeploymentOptions est disponible uniquement dans le contexte utilisateur.

  • Voici un exemple d’installation d’application avec des dépendances.

    <!-- Add PackageFamilyName -->
    <Add>
        <CmdID>0</CmdID>
        <Item>
           <Target>
              <LocURI>./Device/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName</LocURI>
           </Target>
        </Item>
    </Add>
    <!-- Provision appx with framework dependencies-->
    <Exec>
        <CmdID>1</CmdID>
        <Item>
           <Target>
              <LocURI>./Device/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName}/HostedInstall</LocURI>
           </Target>
           <Meta>
              <Format xmlns="syncml:metinf">xml</Format>
           </Meta>
           <Data>
              <Application PackageUri="\\server\share\HelloWorld10.appx" />
                 <Dependencies>
                          <Dependency PackageUri="\\server\share\HelloWorldFramework.appx" />
                    <Dependency PackageUri="\\server2\share\HelloMarsFramework.appx"/>
                 </Dependencies>
              </Application>
           </Data>
        </Item>
    </Exec>
    

Obtenir status des installations d’applications

Une fois l’installation d’une application terminée, une notification Windows est envoyée. Vous pouvez également interroger les status de l’utilisation du nœud AppInstallation. Voici la liste des informations que vous pouvez récupérer dans la requête :

  • État : indique la status de l’installation de l’application.
    • NOT_INSTALLED (0) : le nœud a été ajouté, mais l’exécution n’a pas été terminée.
    • INSTALLATION (1) : l’exécution a démarré, mais le déploiement n’est pas terminé. Si le déploiement se termine indépendamment de la réussite, cette valeur est mise à jour.
    • FAILED (2) - Échec de l’installation. Les détails de l’erreur se trouvent sous LastError et LastErrorDescription.
    • INSTALLÉ (3) : une fois l’installation réussie, ce nœud est nettoyé. Si l’action de propre n’est pas terminée, cet état peut apparaître brièvement.
  • LastError : dernière erreur signalée par le serveur de déploiement d’applications.
  • LastErrorDescription : décrit la dernière erreur signalée par le serveur de déploiement d’applications.
  • État : entier qui indique la progression de l’installation de l’application. Dans le cas d’un emplacement HTTPS, cette status indique la progression estimée du téléchargement. L’état n’est pas disponible pour l’approvisionnement et utilisé uniquement pour les installations basées sur l’utilisateur. Pour l’approvisionnement, la valeur est toujours 0.

Lorsqu’une application est installée avec succès, le nœud est nettoyé et n’est plus présent. Les status de l’application peuvent être signalées sous le nœud AppManagement.

  • Voici un exemple de requête pour une installation d’application spécifique.

    <!-- Get all app status under AppInstallation for a specific app-->
    <Get>
        <CmdID>2</CmdID>
        <Item>
           <Target>
              <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName}?list=StructData</LocURI>
           </Target>
        </Item>
    </Get>
    
  • Voici un exemple de requête pour toutes les installations d’applications.

    <!-- Get all app status under AppInstallation-->
    <Get>
        <CmdID>2</CmdID>
        <Item>
           <Target>
              <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation?list=StructData</LocURI>
           </Target>
        </Item>
    </Get>
    

Alerte pour la fin de l’installation

L’installation de l’application peut prendre un certain temps. Donc, elles sont effectuées de manière asynchrone. Une fois la commande Exec terminée, le client envoie une notification au serveur d’administration avec un status, qu’il s’agisse d’un échec ou d’une réussite.

Voici un exemple d’alerte.

<Alert>
    <CmdID>4</CmdID>
    <Data>1226</Data>
        <Item>
            <Source>
                <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/{PackageFamilyName}/HostedInstall</LocURI>
            </Source>
            <Meta>
                <Type xmlns="syncml:metinf">Reversed-Domain-Name:com.microsoft.mdm.EnterpriseHostedAppInstall.result</Type>
                <Format xmlns="syncml:metinf">int</Format>
            </Meta>
            <Data>0</Data>
        </Item>
</Alert>

Pour l’installation basée sur l’utilisateur, utilisez le ./User chemin et pour l’approvisionnement des applications, utilisez le ./Device chemin.

La valeur 0 (zéro) du champ Données indique la réussite. Sinon, il s’agit d’un code d’erreur. En cas d’échec, vous pouvez obtenir plus de détails à partir du nœud AppInstallation.

Remarque

À ce stade, l’alerte pour l’installation de l’application du Windows Store n’est pas disponible.

Désinstaller vos applications

Vous pouvez désinstaller des applications d’utilisateurs à partir d’appareils Windows. Pour désinstaller une application, vous la supprimez du nœud AppManagement du csp. Dans le nœud AppManagement, les packages sont organisés en fonction de leur origine en fonction des nœuds suivants :

  • AppStore : ces applications sont destinées au Microsoft Store. Les applications peuvent être installées directement à partir du Store ou livrées à l’entreprise à partir du Store pour Entreprises.
  • nonStore : applications qui n’ont pas été acquises à partir du Microsoft Store.
  • Système : ces applications font partie du système d’exploitation. Vous ne pouvez pas désinstaller ces applications.

Pour désinstaller une application, vous la supprimez sous le nœud d’origine, le nom de la famille de packages et le nom complet du package. Pour désinstaller un XAP, utilisez l’ID de produit à la place du nom de la famille de packages et du nom complet du package.

Voici un exemple de désinstallation de toutes les versions d’une application pour un utilisateur.

<!-- Uninstall App for a Package Family-->
<Delete>
   <CmdID>1</CmdID>
   <Item>
      <Target>
         <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement/AppStore/{PackageFamilyName}</LocURI>
      </Target>
   </Item>
</Delete>

- Voici un exemple de désinstallation d’une version spécifique de l’application pour un utilisateur.

<!-- Uninstall App for a specific package full name-->
<Delete>
   <CmdID>1</CmdID>
   <Item>
      <Target>
         <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement/AppStore/{PackageFamilyName}/{PackageFullName}</LocURI>
      </Target>
   </Item>
</Delete>

Suppression des applications approvisionnées d’un appareil

Vous pouvez supprimer des applications approvisionnées d’un appareil pour une version spécifique ou pour toutes les versions d’une famille de packages. Lorsqu’une application provisionnée est supprimée, elle n’est pas disponible pour les futurs utilisateurs de l’appareil. Les utilisateurs connectés auxquels l’application est inscrite continuent d’avoir accès à l’application. Si vous souhaitez supprimer l’application pour ces utilisateurs, vous devez désinstaller explicitement l’application pour ces utilisateurs.

Remarque

Vous pouvez uniquement supprimer une application qui a une valeur d’inventaire IsProvisioned = 1.

La suppression de l’application provisionnée se produit dans le contexte de l’appareil.

  • Voici un exemple de suppression d’une application provisionnée d’un appareil.

    <!- Remove Provisioned App for a Package Family-->
    <Delete>
        <CmdID>1</CmdID>
        <Item>
           <Target>
              <LocURI>./Device/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement/AppStore/{PackageFamilyName}</LocURI>
           </Target>
        </Item>
    </Delete>
    
  • Voici un exemple de suppression d’une version spécifique d’une application provisionnée d’un appareil :

    <!-- Remove Provisioned App for a specific package full name-->
    <Delete>
        <CmdID>1</CmdID>
        <Item>
           <Target>
              <LocURI>./Device/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement/AppStore/{PackageFamilyName}/{PackageFullName}</LocURI>
           </Target>
        </Item>
    </Delete>
    

Supprimer une licence d’application du Store

Vous pouvez supprimer des licences d’application d’un appareil par application en fonction de l’ID de contenu.

  • Voici un exemple de suppression d’une licence d’application pour un utilisateur.

    <!-- Remove App License for a User-->
    <Delete>
        <CmdID>1</CmdID>
        <Item>
           <Target>
              <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppLicenses/StoreLicenses/{license id}</LocURI>
           </Target>
        </Item>
    </Delete>
    
  • Voici un exemple de suppression d’une licence d’application pour un package provisionné (contexte d’appareil).

    <!-- Remove App License for a provisioned package (device) -->
    <Delete>
        <CmdID>1</CmdID>
        <Item>
           <Target>
              <LocURI>./Device/Vendor/MSFT/EnterpriseModernAppManagement/AppLicenses/StoreLicenses/{license id}</LocURI>
           </Target>
        </Item>
    </Delete>
    

Alerte pour la désinstallation de l’application

La désinstallation d’une application peut prendre un certain temps. Par conséquent, la désinstallation est exécutée de manière asynchrone. Une fois la commande Exec terminée, le client envoie une notification au serveur d’administration avec un status, qu’il s’agisse d’un échec ou d’une réussite.

Pour la désinstallation basée sur l’utilisateur, utilisez ./User dans le LocURI, et pour l’approvisionnement, utilisez ./Device dans le LocURI.

Voici un exemple : Il n’y a qu’une seule désinstallation pour les applications hébergées et du Store.

<Alert>
    <Data>1226</Data>
    <Item>
        <Source>
            <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement/{PackageFamilyName}</LocURI>
        </Source>
        <Meta>
            <Type xmlns="syncml:metinf">Reversed-Domain-Name:com.microsoft.mdm.EnterpriseAppUninstall.result</Type>
            <Format xmlns="syncml:metinf">int</Format>
        </Meta>
        <Data>0</Data>
    </Item>
</Alert>

Mettre à jour vos applications

Les applications installées sur un appareil peuvent être mises à jour à l’aide du serveur d’administration. Les applications peuvent être mises à jour directement à partir du Store ou installées à partir d’un emplacement hébergé.

Mettre à jour les applications directement à partir du Store

Pour mettre à jour une application à partir du Microsoft Store, l’appareil nécessite un contact avec les services du Store.

  • Voici un exemple d’analyse de mise à jour.

    <!- Initiate a update scan for a user-->
    <Exec>
        <CmdID>1</CmdID>
        <Item>
           <Target>
              <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement/UpdateScan</LocURI>
           </Target>
        </Item>
    </Exec>
    
  • Voici un exemple de status case activée.

    <!- Get last error related to the update scan-->
    <Get>
        <CmdID>1</CmdID>
        <Item>
           <Target>
              <LocURI>./User/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement/LastScanError</LocURI>
           </Target>
        </Item>
    </Get>
    

Mettre à jour des applications à partir d’un emplacement hébergé

La mise à jour d’une application existante suit le même processus qu’une installation initiale. Pour plus d’informations, consultez Déployer des applications sur un utilisateur à partir d’un emplacement hébergé.

Mettre à jour les applications approvisionnées

Une application provisionnée se met automatiquement à jour lorsqu’une mise à jour d’application est envoyée à l’utilisateur. Vous pouvez également mettre à jour une application provisionnée à l’aide du même processus qu’un approvisionnement initial. Pour plus d’informations sur l’approvisionnement initial, consultez Provisionner des applications pour tous les utilisateurs d’un appareil.

Empêcher l’application de mettre à jour automatiquement

Vous pouvez empêcher la mise à jour automatique d’applications spécifiques. Cette fonctionnalité vous permet d’activer les mises à jour automatiques pour les applications, avec des applications spécifiques exclues comme défini par l’administrateur informatique.

La désactivation des mises à jour s’applique uniquement aux mises à jour du Microsoft Store au niveau de l’appareil. Cette fonctionnalité n’est pas disponible au niveau de l’utilisateur. Vous pouvez toujours mettre à jour une application si les packages hors connexion sont envoyés à partir de l’emplacement d’installation hébergé.

Voici un exemple :

<!- Prevent app from being automatically updated-->
<Replace>
   <CmdID>1</CmdID>
   <Item>
      <Target>
         <LocURI>./Device/Vendor/MSFT/EnterpriseModernAppManagement/AppManagement/AppStore/{PackageFamilyName}/DoNotUpdate</LocURI>
         </Target>
      <Meta>
         <Format xmlns="syncml:metinf">int</Format>
         <Type xmlns="syncml:metinf">text/plain</Type>
      </Meta>
      <Data>1</Data></Item>
</Replace>

Autres scénarios de gestion des applications

Les sous-sections suivantes fournissent des informations sur d’autres configurations de paramètres.

Activer les données d’application utilisateur partagées

L’application Windows universelle peut partager des données d’application entre les utilisateurs de l’appareil. La possibilité de partager des données peut être définie au niveau d’une famille de packages ou par appareil.

Remarque

Cela s’applique uniquement aux appareils multi-utilisateurs.

La stratégie ApplicationManagement/AllowSharedUserAppData permet ou désactive les packages d’application de partager des données entre les packages d’application lorsqu’il y a plusieurs utilisateurs. Si vous activez cette stratégie, les applications peuvent partager des données entre les packages de leur famille de packages. Les données peuvent être partagées via le dossier ShareLocal pour cette famille de packages et cet ordinateur local. Ce dossier est disponible via l’API Windows.Storage.

Si vous désactivez cette stratégie, les applications ne peuvent pas partager les données d’application utilisateur entre plusieurs utilisateurs. Toutefois, les données partagées préécrites sont conservées. Pour propre données partagées préécrites, utilisez DISM (/Get-ProvisionedAppxPackage pour détecter s’il existe des données partagées et /Remove-SharedAppxData les supprimer).

Les valeurs valides sont 0 (désactivé, valeur par défaut) et 1 (activé).

Voici un exemple :

<!-- Get policy (Default)-->
<Get>
   <CmdID>1</CmdID>
   <Item>
      <Target>
         <LocURI>./Vendor/MSFT/Policy/Result/ApplicationManagement/AllowSharedUserAppData?list=StructData</LocURI>
      </Target>
   </Item>
</Get>
<!-- Update policy -->
<Replace>
   <CmdID>2</CmdID>
   <Item>
      <Target>
         <LocURI>./Vendor/MSFT/Policy/Config/ApplicationManagement/AllowSharedUserAppData</LocURI>
      </Target>
   <Meta>
      <Format>int</Format>
      <Type>text/plain</Type>
   </Meta>
   <Data>1</Data>
   </Item>
</Replace>