Options de Command-Line de maintenance du package d’application DISM (.appx ou .appxbundle)

Vous pouvez utiliser les commandes de maintenance des packages d’application pour ajouter, supprimer et répertorier les packages d’application provisionnés (.appx ou .appxbundle) dans une image Windows. Un fichier .appxbundle est une collection de packages d’applications et de ressources utilisés ensemble pour enrichir l’expérience de l’application, tout en réduisant l’encombrement du disque sur un PC donné. Pour plus d’informations sur les packages .appxbundle et le pipeline du Microsoft Store, consultez Empaquetage d’applications. Seul un sous-ensemble des packages d’un fichier .appxbundle peut être ajouté à l’image lorsqu’un bundle est provisionné à l’aide de DISM. Pour plus d’informations, consultez Présentation de la façon dont DISM ajoute des packages de ressources .appxbundle à une image.

Les packages d’application provisionnés sont ajoutés à une image Windows, puis installés pour chaque profil utilisateur nouveau ou existant la prochaine fois que l’utilisateur se connecte. Pour plus d’informations, notamment la configuration requise pour l’approvisionnement de packages d’application, consultez Chargement indépendant d’applications avec DISM.

Vous pouvez également utiliser PowerShell pour ajouter, supprimer et répertorier des packages d’application (.appx ou .appxbundle) par image ou par utilisateur dans une installation Windows. Pour plus d’informations, consultez Applets de commande DISM (Deployment Imaging Servicing Management) dans Windows PowerShell et Applets de commande d’installation d’application dans Windows PowerShell.

Syntaxe de maintenance DISM

La syntaxe de base pour la maintenance d’une image Windows à l’aide de DISM est la suivante :

DISM.exe {/Image:<path_to_image_directory>|/Online} [dism_global_options] {servicing_option} <servicing_argument>]

Options pour les images hors connexion

Les options de maintenance de package d’application (.appx ou .appxbundle) suivantes sont disponibles pour une image hors connexion.

DISM.exe /Image:<path_to_image_directory> [/Get-ProvisionedAppxPackages | /Add-ProvisionedAppxPackage | /Remove-ProvisionedAppxPackage | /Set-ProvisionedAppxDataFile | /StubPackageOption]

Options pour les images en ligne

Les options de maintenance suivantes du package d’application (.appx ou .appxbundle) sont disponibles pour un système d’exploitation en cours d’exécution.

DISM.exe /Online [/Get-ProvisionedAppxPackages | /Add-ProvisionedAppxPackage | /Remove-ProvisionedAppxPackage | /Set-ProvisionedAppxDataFile | /StubPackageOption]

/Get-Help /?

Lorsqu’elle est utilisée immédiatement après l’option de ligne de commande de maintenance d’un package d’application, des informations sur l’option et les arguments s’affichent. D’autres rubriques peuvent devenir disponibles lorsqu’une image est spécifiée.

Dism /image:C:\test\offline /Add-ProvisionedAppxPackage /?
Dism /online /Get-ProvisionedAppxPackages /?

/Get-ProvisionedAppxPackages

Affiche des informations sur les packages d’application (.appx ou .appxbundle) dans une image, qui sont définis pour être installés pour chaque nouvel utilisateur.

Dism /Image:C:\test\offline /Get-ProvisionedAppxPackages

/Add-ProvisionedAppxPackage

Ajoute un ou plusieurs packages d’application à l’image.

L’application sera ajoutée à l’image Windows et inscrite pour chaque profil utilisateur existant ou nouveau la prochaine fois que l’utilisateur se connectera. Si l’application est ajoutée à une image en ligne, l’application ne sera pas inscrite pour l’utilisateur actuel avant la prochaine connexion de l’utilisateur.

Provisionnez des applications sur un système d’exploitation en ligne en mode Audit afin que des liens durs appropriés puissent être créés pour les applications qui contiennent exactement les mêmes fichiers (afin de réduire l’utilisation de l’espace disque) tout en veillant à ce qu’aucune application ne soit en cours d’exécution pour une installation réussie.

Syntaxe :

dism.exe /Add-ProvisionedAppxPackage {/FolderPath:<App_folder_path> [/SkipLicense\] [/CustomDataPath:<custom_file_path>]  /PackagePath:<main_package_path> [/DependencyPackagePath:<dependency_package_path>] {[/LicensePath:<license_file_path>] [/SkipLicense\]} [/CustomDataPath:<custom_file_path>]} [/Region:<region>]
  • Utilisez /FolderPath pour spécifier un dossier de fichiers d’application décompressés contenant un package main, tous les packages de dépendances et le fichier de licence. Ceci est pris en charge uniquement pour un package d’application décompressé.

  • Utilisez /PackagePath pour spécifier un package d’application (.appx ou .appxbundle). Vous pouvez utiliser /PackagePath lors de l’approvisionnement d’une application métier en ligne.

    Important

    Utilisez le /PackagePath paramètre pour provisionner des packages .appxbundle. En outre, les packages de dépendances ne peuvent pas être provisionnés avec /PackagePath, ils doivent être provisionnés avec le /DependencyPackagePath paramètre pour une application.

  • /PackagePath n’est pas pris en charge à partir d’un PC hôte qui exécute Windows Preinstallation Environment (WinPE) 4.0, Windows Server 2008 R2 ou une version antérieure de Windows.

  • Utilisez /Region pour spécifier les régions dans lesquelles un package d’application (.appx ou .appxbundle) doit être provisionné. L’argument de région peut être :

    • all, indiquant que l’application doit être provisionnée pour toutes les régions, ou
    • Liste de régions délimitées par des points-virgules. Les régions se présenteront sous la forme de codes ISO 3166-1 Alpha-2 ou ISO 3166-1 Alpha-3. Par exemple, le États-Unis peut être spécifié comme « US » ou « USA » (ne respectant pas la casse). Lorsqu’aucune liste de régions n’est spécifiée, le package est provisionné uniquement s’il est épinglé pour démarrer la disposition.
  • Utilisez /DependencyPackagePath pour spécifier chaque package depencency nécessaire à l’approvisionnement de l’application. Les packages de dépendances nécessaires d’une application peuvent être trouvés en examinant les <PackageDependency> éléments dans le AppxManifest.xml à la racine du package .appx de l’application. Si plusieurs applications partagent toutes la même dépendance, la dernière version mineure de chaque version principale du package de dépendances doit être installée. Par exemple, App1, App2 et App3 ont tous une dépendance sur Microsoft.NET.Native.Framework. App1 spécifie Microsoft.NET.Native.Framework.1.6 avec la version mineure 25512.0, App2 spécifie Microsoft.NET.Native.Framework.1.6 avec la version mineure 25513.0 et App3 spécifie Microsoft.NET.Native.Framework.1.3 avec la version mineure 24202.0. Étant donné que App1 et App2 spécifient la même version principale du package de dépendances, seule la dernière version mineure 25513.0 doit être installée, tandis qu’App3 spécifie une version majeure différente du package de dépendances. Elle doit donc également être installée. Par conséquent, les packages de dépendances qui doivent être installés sont Microsoft.NET.Native.Framework.1.6 avec la version mineure 25513.0 et Microsoft.NET.Native.Framework.1.3 avec la version mineure 24202.0.

    Si le package a des dépendances spécifiques à l’architecture, vous devez installer toutes les architectures applicables pour la dépendance sur l’image cible. Par exemple, sur une image cible x64, incluez un chemin d’accès aux packages de dépendances x86 et x64 ou incluez-les tous les deux dans le dossier des fichiers d’application décompressés. Si le package de dépendances Arm est également spécifié ou inclus, DISM l’ignore, car il ne s’applique pas à l’image x64 cible.

    Architecture de l’ordinateurDépendances à installer :
    x64x64 et x86
    x86x86
    ArmArm uniquement
  • Utilisez /CustomDataPath pour spécifier un fichier de données personnalisé facultatif pour une application. Vous pouvez spécifier n’importe quel nom de fichier. Le fichier sera renommé Custom.dat lorsqu’il sera ajouté à l’image.

  • Utilisez /LicensePath avec l’option /PackagePath pour spécifier l’emplacement du fichier .xml contenant votre licence d’application.

  • Utilisez uniquement avec des /SkipLicense applications qui ne nécessitent pas de licence sur un ordinateur avec chargement indépendant. L’utilisation /SkipLicense dans d’autres scénarios peut compromettre une image.

Exemples :

Dism /Image:C:\test\offline /Add-ProvisionedAppxPackage /FolderPath:c:\Test\Apps\MyUnpackedApp /CustomDataPath:c:\Test\Apps\CustomData.xml
Dism /Online /Add-ProvisionedAppxPackage /PackagePath:C:\Test\Apps\MyPackedApp\MainPackage.appx /DependencyPackagePath:C:\Test\Apps\MyPackedApp\Framework-x86.appx /DependencyPackagePath:C:\Test\Apps\MyPackedApp\Framework-x64.appx /LicensePath:C:\Test\Apps\MyLicense.xml
Dism /Online /Add-ProvisionedAppxPackage /FolderPath:C:\Test\Apps\MyUnpackedApp /SkipLicense
Dism /Image:C:\test\offline /Add-ProvisionedAppxPackage /PackagePath:C:\Test\Apps\MyPackedApp\MainPackage.appxbundle /SkipLicense
Dism /Online /Add-ProvisionedAppxPackage /PackagePath:C:\Test\Apps\MyPackedApp\MainPackage.appxbundle /Region:"all"
Dism /Online /Add-ProvisionedAppxPackage /PackagePath:C:\Test\Apps\MyPackedApp\MainPackage.appxbundle /Region:"US;GB"

/Remove-ProvisionedAppxPackage

Supprime l’approvisionnement des packages d’application (.appx ou .appxbundle) de l’image. Les packages d’application ne seront pas inscrits auprès des nouveaux comptes d’utilisateur créés.

Syntaxe :

/Remove-ProvisionedAppxPackage /PackageName:<PackageName>

Important

Cette option ne supprime l’approvisionnement d’un package que s’il est inscrit auprès d’un profil utilisateur. Utilisez l’applet de commande Remove-AppxPackage dans PowerShell pour supprimer l’application pour chaque utilisateur auprès duquel elle est déjà inscrite afin de supprimer complètement l’application de l’image. Si l’application n’a pas été inscrite dans un profil utilisateur, l’option /Remove-ProvisionedAppxPackage supprime complètement le package. Pour supprimer des packages d’application d’une image Windows Server 2012 ou ultérieure sur laquelle l’expérience utilisateur est installée, vous devez supprimer les packages d’application avant de supprimer l’expérience utilisateur. L’expérience utilisateur est une exigence de l’option pour les /Remove-ProvisionedAppxPackage installations minimales de Windows Server.

Exemple :

Dism /Image:C:\test\offline /Remove-ProvisionedAppxPackage /PackageName:microsoft.devx.appx.app1_1.0.0.0_neutral_ac4zc6fex2zjp

/Optimize-ProvisionedAppxPackages

Optimise la taille de fichier totale des packages provisionnés sur l’image en remplaçant les fichiers identiques par des liens physiques. Une fois qu’une image avec des packages AppX provisionnés est en ligne, /optimize-provisionedappxpackages ne peut pas optimiser les packages AppX provisionnés. Si vous mettez une image hors connexion et ajoutez des packages, seuls les packages provisionnés après la remise hors connexion de l’image seront optimisés.

Cette commande n’est pas prise en charge sur une image en ligne.

DISM.exe /Image:C:\test\offline /Optimize-ProvisionedAppxPackages

/Set-ProvisionedAppxDataFile

Ajoute un fichier de données personnalisé dans le package d’application spécifié (.appx ou .appxbundle).

Syntaxe

/Set-ProvisionedAppxDataFile [/CustomDataPath<custom_file_path>] /PackageName<PackageName>

Le package d’application spécifié (.appx ou .appxbundle) doit déjà être ajouté à l’image avant l’ajout du fichier de données personnalisé avec cette option. Vous pouvez également ajouter un fichier de données personnalisé lorsque vous utilisez l’option /Add-ProvisionedAppxPackage .

  • Utilisez /CustomDataPath pour spécifier un fichier de données personnalisé facultatif pour une application. Vous pouvez spécifier n’importe quel nom de fichier. Le fichier sera renommé Custom.dat lorsqu’il sera ajouté à l’image. S’il existe déjà un fichier Custom.dat, il est remplacé.

  • Utilisez /PackageName pour spécifier un package d’application (.appx ou .appxbundle).

Exemple :

DISM.exe /Image:C:\test\offline /Set-ProvisionedAppxDataFile /CustomDataPath:c:\Test\Apps\Custom.dat /PackageName:microsoft.appx.app1_1.0.0.0_neutral_ac4zc6fex2zjp

/StubPackageOption

Utilisé conjointement avec les options de maintenance du package d’application pour spécifier la préférence de stub du package.

Syntaxe :

/StubPackageOption:{installstub | installfull}
  • InstallStub définit le package de provisionnement sur la version stub. Définit implicitement la préférence stub sur stub.
  • InstallFull définit le package de provisionnement sur le provisionnement de la version complète. Définit implicitement la préférence stub sur full.

Si aucune option de package stub n’est spécifiée, la version du package provisionnée est définie sur les préférences de stub prédéfinies.

Exemple :

Dism /image:C:\test\offline /add-provisionedappxpackage /packagepath:"C:\dism\stub\appwithresources.appxbundle" /stubpackageoption:installstub

Présentation de la façon dont DISM ajoute des packages de ressources .appxbundle à une image

Lorsqu’un fichier .appxbundle est ajouté à l’image, tous les packages de ressources au sein du bundle ne sont pas applicables. Par exemple, si une application est ajoutée à une image Windows avec une langue par défaut espagnole (Espagne), les ressources Français (France) ne doivent pas être incluses. Pour déterminer les ressources ajoutées à l’image, l’applicabilité du package est déterminée à l’aide des éléments suivants :

  • Modules de ressources linguistiques : si une langue de système d’exploitation n’est pas présente, le pack de ressources linguistique de l’application correspondant n’est pas ajouté. Par exemple, vous pouvez avoir une image qui est une Windows 10 avec l’anglais (US) comme langue par défaut, et un module linguistique espagnol (Espagne) inclus. Les packs de ressources d’application anglais (US) et espagnol (Espagne) seront ajoutés à l’image. Si un pack de ressources Français (France) (ou toute autre langue) est disponible dans l’offre groupée d’application, il n’est pas ajouté.

  • Packs de ressources Scale et DirectX (DXFL) : Les packs de ressources Scale et DirectX (DXFL) dépendent de la configuration matérielle de l’appareil Windows. Étant donné que le type de matériel cible ne peut pas être connu au moment de l’exécution des commandes DISM, tous les packages de ressources DXFL et de mise à l’échelle sont ajoutés à l’image au moment de l’approvisionnement. Pour plus d’informations sur le développement d’une application avec des ressources de mise à l’échelle, consultez Recommandations pour la mise à l’échelle vers la densité de pixels (applications du Microsoft Store).

Pour une image contenant plusieurs modules linguistiques, des packages de ressources d’application sont ajoutés à l’image pour chaque langue. Une fois que le premier utilisateur s’est connecté au PC avec l’image déployée et que l’utilisateur a choisi une langue pendant OOBE, les packages de ressources inapplicables (modules de ressources linguistiques, packs de ressources de mise à l’échelle et packages de ressources DXFL) qui ne correspondent pas aux paramètres de profil utilisateur sont supprimés.

Par exemple, une application peut prendre en charge les langues anglais (ÉTATS-UNIS), Français (France) et espagnol (Espagne). Si l’application est ajoutée à une image avec des modules linguistiques anglais (US) et espagnol (Espagne) présents, seuls les packs de ressources anglais (US) et espagnol (Espagne) seront ajoutés à l’image. Ensuite, si un utilisateur se connecte pour la première fois et, au cours de l’OOBE, sélectionne l’anglais (US) comme langue de son système d’exploitation, les packages de ressources espagnols (Espagne) seront supprimés une fois la connexion terminée.

Important

Si vous ajoutez ou supprimez un module linguistique d’une image, vous modifiez le contexte d’applicabilité, ce qui peut entraîner la création d’un ensemble incorrect ou incomplet de packages de ressources dans l’image. Lorsqu’un module linguistique est ajouté ou supprimé, vous devez, à nouveau, ajouter tous les packages .appxbundle (y compris les packages de dépendances et le fichier de licence du Microsoft Store) à l’image. Cela garantit que l’ensemble correct de packages de ressources est approvisionné.

Limites

  • Vous ne pouvez pas installer un package d’application (.appx) sur un système d’exploitation qui ne prend pas en charge Windows 8 applications. Vous ne pouvez pas installer de package groupé d’applications (.appxbundle) sur un système d’exploitation qui ne prend pas en charge au moins Windows 8.1 applications. Les applications ne sont pas prises en charge sur WinPE 4.0, l’option d’installation Windows Server 2012 Server Core, ni sur les versions de Windows antérieures à Windows 8 et Windows Server 2012.

    Pour installer et exécuter des applications sur Windows Server 2012, vous devez installer l’expérience de bureau.

  • L’option /FolderPath est uniquement prise en charge pour les packages d’application basés sur le format .appx.

  • /PackagePath doit toujours être utilisé pour les packages .appxbundle.

Qu’est-ce que DISM ?

Options de ligne de commande de la gestion des images DISM

Options de ligne de commande de Gestion et maintenance des images de déploiement (DISM)

Charger indépendamment des applications avec DISM