Opciones de mantenimiento del paquete de aplicaciones DISM (.appx o .appxbundle) Command-Line

Puede usar comandos de mantenimiento de paquetes de aplicaciones para agregar, quitar y enumerar paquetes de aplicaciones aprovisionados (.appx o .appxbundle) en una imagen de Windows. Un .appxbundle es una colección de paquetes de aplicaciones y recursos que se usan juntos para enriquecer la experiencia de la aplicación, al tiempo que minimiza la superficie de disco en un equipo determinado. Para obtener información detallada sobre los paquetes .appxbundle y la canalización de Microsoft Store, consulta Empaquetado de aplicaciones. Solo un subconjunto de los paquetes dentro de un archivo .appxbundle se puede agregar a la imagen cuando se aprovisiona un lote mediante DISM. Para obtener más información, vea Descripción de cómo DISM agrega paquetes de recursos .appxbundle a una imagen.

Los paquetes de aplicaciones aprovisionados se agregan a una imagen de Windows y, a continuación, se instalan para cada perfil de usuario nuevo o existente la próxima vez que el usuario inicie sesión. Para obtener más información, incluidos los requisitos para el aprovisionamiento de paquetes de aplicaciones, consulte Transferir localmente aplicaciones con DISM.

También puede usar PowerShell para agregar, quitar y enumerar paquetes de aplicaciones (.appx o .appxbundle) por imagen o por usuario en una instalación de Windows. Para obtener más información, vea Cmdlets de administración de mantenimiento de imágenes de implementación (DISM) en Windows PowerShell y cmdlets de instalación de aplicaciones en Windows PowerShell.

Sintaxis de mantenimiento de DISM

La sintaxis base para atender una imagen de Windows mediante DISM es:

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

Opciones para imágenes sin conexión

Las siguientes opciones de mantenimiento del paquete de aplicación (.appx o .appxbundle) están disponibles para una imagen sin conexión.

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

Opciones para imágenes en línea

Las siguientes opciones de mantenimiento del paquete de aplicación (.appx o .appxbundle) están disponibles para un sistema operativo en ejecución.

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

/Get-Help /?

Cuando se usa inmediatamente después de una opción de línea de comandos de mantenimiento de paquetes de aplicación, se muestra información sobre la opción y los argumentos. Es posible que haya temas adicionales disponibles cuando se especifica una imagen.

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

/Get-ProvisionedAppxPackages

Muestra información sobre los paquetes de aplicación (.appx o .appxbundle), en una imagen, que se establecen para instalar para cada nuevo usuario.

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

/Add-ProvisionedAppxPackage

Agrega uno o varios paquetes de aplicación a la imagen.

La aplicación se agregará a la imagen de Windows y se registrará para cada perfil de usuario existente o nuevo la próxima vez que el usuario inicie sesión. Si la aplicación se agrega a una imagen en línea, la aplicación no se registrará para el usuario actual hasta la próxima vez que el usuario inicie sesión.

Aprovisione aplicaciones en un sistema operativo en línea en modo auditoría para que se puedan crear vínculos duros adecuados para las aplicaciones que contengan los mismos archivos (para minimizar el uso del espacio en disco) a la vez que garantiza que no se ejecute ninguna aplicación para una instalación correcta.

Sintaxis:

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>]
  • Use /FolderPath para especificar una carpeta de archivos de aplicación desempaquetados que contengan un paquete principal, los paquetes de dependencia y el archivo de licencia. Esto solo se admite para un paquete de aplicación desempaquetado.

  • Use /PackagePath para especificar un paquete de aplicación (.appx o .appxbundle). Puede usar al aprovisionar /PackagePath una aplicación de línea de negocio en línea.

    Importante

    Use el /PackagePath parámetro para aprovisionar paquetes .appxbundle. Además, los paquetes de dependencia no se pueden aprovisionar con /PackagePath, deben aprovisionarse con el /DependencyPackagePath parámetro para una aplicación.

  • /PackagePath no se admite desde un equipo host que ejecute Windows Preinstallation Environment (WinPE) 4.0, Windows Server 2008 R2 o una versión anterior de Windows.

  • Use /Region para especificar en qué regiones se debe aprovisionar un paquete de aplicación (.appx o .appxbundle). El argumento region puede ser:

    • all, que indica que la aplicación se debe aprovisionar para todas las regiones o
    • Lista delimitada por punto y coma de regiones. Las regiones estarán en forma de códigos ISO 3166-1 Alfa-2 o ISO 3166-1 Alfa-3. Por ejemplo, el Estados Unidos se puede especificar como "US" o "USA" (sin distinción entre mayúsculas y minúsculas). Cuando no se especifica una lista de regiones, el paquete solo se aprovisionará si está anclado al diseño de inicio.
  • Use /DependencyPackagePath para especificar cada paquete de dependencia necesario para que se aprovisione la aplicación. Los paquetes de dependencia necesarios de una aplicación se pueden encontrar examinando los <PackageDependency> elementos de la AppxManifest.xml en la raíz del paquete .appx de la aplicación. Si varias aplicaciones comparten la misma dependencia, se debe instalar la versión secundaria más reciente de cada versión principal del paquete de dependencia. Por ejemplo, App1, App2 y App3 tienen una dependencia en Microsoft.NET.Native.Framework. App1 especifica Microsoft.NET.Native.Framework.1.6 con la versión secundaria 25512.0, App2 especifica Microsoft.NET.Native.Framework.1.6 con la versión secundaria 25513.0 y App3 especifica Microsoft.NET.Native.Framework.1.3 con la versión secundaria 24202.0. Dado que Tanto App1 como App2 especifican la misma versión principal del paquete de dependencias, solo se debe instalar la versión secundaria 25513.0 más reciente, mientras que App3 especifica una versión principal diferente del paquete de dependencias, por lo que también debe instalarse. Por lo tanto, los paquetes de dependencia que se deben instalar son Microsoft.NET.Native.Framework.1.6 con la versión secundaria 25513.0 y Microsoft.NET.Native.Framework.1.3 con la versión secundaria 24202.0.

    Si el paquete tiene dependencias específicas de la arquitectura, debe instalar todas las arquitecturas aplicables para la dependencia de la imagen de destino. Por ejemplo, en una imagen de destino x64, incluya una ruta de acceso a los paquetes de dependencias x86 y x64 o inclúyelos en la carpeta de archivos de aplicación desempaquetados. Si el paquete de dependencias de Arm también se especifica o se incluye, DISM lo omitirá, ya que no se aplica a la imagen x64 de destino.

    Arquitectura del equipoDependencias para instalar:
    x64x64 y x86
    x86x86
    ArmSolo arm
  • Use /CustomDataPath para especificar un archivo de datos personalizado opcional para una aplicación. Puede especificar cualquier nombre de archivo. El nombre del archivo se cambiará a Custom.dat cuando se agregue a la imagen.

  • Use /LicensePath con la /PackagePath opción para especificar la ubicación del archivo .xml que contiene la licencia de la aplicación.

  • /SkipLicense Use solo con aplicaciones que no requieran una licencia en un equipo habilitado para la instalación de prueba. El uso /SkipLicense en otros escenarios puede poner en peligro una imagen.

Ejemplos:

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

Quita el aprovisionamiento de paquetes de aplicaciones (.appx o .appxbundle) de la imagen. Los paquetes de aplicaciones no se registrarán en nuevas cuentas de usuario creadas.

Sintaxis:

/Remove-ProvisionedAppxPackage /PackageName:<PackageName>

Importante

Esta opción solo quitará el aprovisionamiento de un paquete si está registrado en cualquier perfil de usuario. Use el cmdlet Remove-AppxPackage en PowerShell para quitar la aplicación para cada usuario en el que ya está registrado para quitar completamente la aplicación de la imagen. Si la aplicación no se ha registrado en ningún perfil de usuario, la /Remove-ProvisionedAppxPackage opción quitará completamente el paquete. Para quitar paquetes de aplicaciones de un Windows Server 2012, o una imagen posterior, que tenga instalada la experiencia de escritorio, debe quitar los paquetes de la aplicación antes de quitar la experiencia de escritorio. La experiencia de escritorio es un requisito de la /Remove-ProvisionedAppxPackage opción para las instalaciones de Server Core de Windows Server.

Ejemplo:

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

/Optimize-ProvisionedAppxPackages

Optimiza el tamaño total del archivo de los paquetes aprovisionados en la imagen reemplazando los archivos idénticos por vínculos duros. Una vez que una imagen con paquetes AppX aprovisionados esté en línea, /optimize-provisionedappxpackages no podrá optimizar los paquetes AppX aprovisionados. Si quita una imagen sin conexión y agrega paquetes, solo se optimizarán los paquetes que se aprovisionan después de que la imagen se haya vuelto a desconectar.

Este comando no se admite en una imagen en línea.

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

/Set-ProvisionedAppxDataFile

Agrega un archivo de datos personalizado al paquete de aplicación especificado (.appx o .appxbundle).

Sintaxis

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

El paquete de la aplicación especificada (.appx o .appxbundle) ya debe agregarse a la imagen antes de agregar el archivo de datos personalizado con esta opción. También puede agregar un archivo de datos personalizado al usar la /Add-ProvisionedAppxPackage opción .

  • Use /CustomDataPath para especificar un archivo de datos personalizado opcional para una aplicación. Puede especificar cualquier nombre de archivo. El nombre del archivo se cambiará a Custom.dat cuando se agregue a la imagen. Si ya existe un archivo Custom.dat, se sobrescribirá.

  • Use /PackageName para especificar un paquete de aplicación (.appx o .appxbundle).

Ejemplo:

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

Se usa junto con las opciones de mantenimiento del paquete de la aplicación para especificar la preferencia de código auxiliar del paquete.

Sintaxis:

/StubPackageOption:{installstub | installfull}
  • InstallStub establece el paquete de aprovisionamiento en la versión de código auxiliar. Establece implícitamente la preferencia de código auxiliar en código auxiliar.
  • InstallFull establece el paquete de aprovisionamiento en la versión completa. Establece implícitamente la preferencia de código auxiliar en completa.

Si no se especifica ninguna opción de paquete de código auxiliar que la versión del paquete aprovisionado se establece en las preferencias de código auxiliar predefinidas.

Ejemplo:

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

Descripción de cómo DISM agrega paquetes de recursos .appxbundle a una imagen

Cuando se agrega un .appxbundle a la imagen, no todos los paquetes de recursos dentro del lote son aplicables. Por ejemplo, si se agrega una aplicación a una imagen de Windows con un idioma predeterminado español (España), no se deben incluir recursos de francés (Francia). Para determinar qué recursos se agregan a la imagen, la aplicabilidad del paquete se determina mediante:

  • Paquetes de recursos de idioma: si un idioma del sistema operativo no está presente, no se agrega el paquete de recursos de idioma de la aplicación correspondiente. Por ejemplo, podría tener una imagen que sea un Windows 10 con inglés (EE. UU.) como idioma predeterminado y un paquete de idioma español (España) incluido. Los paquetes de recursos de la aplicación inglés (EE. UU.) y español (España) se agregarán a la imagen. Si un paquete de recursos francés (Francia) (o cualquier otro idioma) está disponible en el lote de aplicaciones, no se agregará.

  • Paquetes de recursos de Scale y DirectX (DXFL): los paquetes de recursos de Scale y DirectX (DXFL) dependen de la configuración de hardware del dispositivo Windows. Dado que el tipo de hardware de destino no se puede conocer en el momento en que se ejecutan los comandos DISM, todos los paquetes de recursos de escalado y DXFL se agregan a la imagen en el momento del aprovisionamiento. Para obtener más información sobre el desarrollo de una aplicación con recursos de escalado, consulta Directrices para escalar a densidad de píxeles (aplicaciones de Microsoft Store).

Para una imagen que contiene varios paquetes de idioma, los paquetes de recursos de la aplicación se agregarán a la imagen para cada idioma. Una vez que el primer usuario ha iniciado sesión en el equipo con la imagen implementada y el usuario ha elegido un idioma durante OOBE, se quitan los paquetes de recursos inaplicables (paquetes de recursos de idioma, paquetes de recursos de escalado y paquetes de recursos DXFL) que no coinciden con la configuración del perfil de usuario.

Por ejemplo, una aplicación podría admitir inglés (EE. UU.), francés (Francia) y español (España). Si la aplicación se agrega a una imagen con los paquetes de idioma inglés (EE. UU.) y español (España), solo se agregarán los paquetes de recursos inglés (EE. UU.) y español (España) a la imagen. Después, si un usuario inicia sesión por primera vez y, durante la OOBE, selecciona Inglés (EE. UU.) como idioma del sistema operativo, los paquetes de recursos español (España) se quitarán una vez completado el inicio de sesión.

Importante

Si agrega o quita un paquete de idioma de una imagen, cambia el contexto de aplicabilidad que puede dar lugar a que se deje un conjunto incorrecto o incompleto de paquetes de recursos en la imagen. Cuando se agrega o quita un paquete de idioma, debe agregar de nuevo todos los paquetes .appxbundle (incluidos los paquetes de dependencia y el archivo de licencia de Microsoft Store) a la imagen. Esto garantizará que se aprovisione el conjunto correcto de paquetes de recursos.

Limitaciones

  • No se puede instalar un paquete de aplicación (.appx) en un sistema operativo que no admita Windows 8 aplicaciones. No se puede instalar un paquete de agrupación de aplicaciones (.appxbundle) en un sistema operativo que no admita al menos Windows 8.1 aplicaciones. Las aplicaciones no se admiten en WinPE 4.0, la opción de instalación Windows Server 2012 Server Core o en cualquier versión de Windows anterior a Windows 8 y Windows Server 2012.

    Para instalar y ejecutar aplicaciones en Windows Server 2012, debe instalar la experiencia de escritorio.

  • La opción /FolderPath solo se admite para paquetes de aplicación basados en el formato .appx.

  • /PackagePath siempre debe usarse para los paquetes .appxbundle.

¿Qué es DISM?

Opciones de línea de comandos para DISM Image Management

Opciones de línea de comandos para Administración y mantenimiento de imágenes de implementación (DISM)

Transferencia local de aplicaciones con DISM