DISM アプリ パッケージ (.appx または .appxbundle) サービス コマンドライン オプション

アプリ パッケージ サービス コマンドを使用すると、Windows イメージのプロビジョニングされたアプリ パッケージ (.appx または .appxbundle) を追加、削除、および一覧表示できます。 .appxbundle は、特定の PC 上のディスク フットプリントを最小限に抑えながらアプリ エクスペリエンスをエンリッチ処理するために一緒に使用される、アプリとリソース パッケージのコレクションです。 .appxbundle パッケージと Microsoft Store パイプラインの詳細については、アプリのパッケージ化に関するページを参照してください。 DISM を使用してバンドルをプロビジョニングする場合、.appxbundle 内のパッケージのサブセットのみがイメージに追加される可能性があります。 詳細については、「DISM で .appxbundle リソース パッケージをイメージに追加する方法について」を参照してください。

プロビジョニングされたアプリ パッケージは、Windows イメージに追加され、次回ユーザーがログオンしたときに、すべての新規または既存のユーザー プロファイルにインストールされます。 アプリ パッケージのプロビジョニングの要件などの詳細については、「DISM を使用したアプリのサイドローディング」を参照してください。

PowerShell を使用して、Windows インストールのイメージごとまたはユーザーごとに、アプリ パッケージ (.appx または .appxbundle) を追加、削除、および一覧表示することもできます。 詳細については、「Windows PowerShell の展開イメージのサービスと管理 (DISM) コマンドレット」および「Windows PowerShell のアプリのインストール コマンドレット」を参照してください。

DISM サービス構文

DISM を使用して Windows イメージを処理するための基本構文は次のようになります。

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

オフライン イメージ用のオプション

オフラインのイメージに対しては、次のアプリ パッケージ (.appx または .appxbundle) サービス オプションを使用できます。

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

オンライン イメージ用のオプション

実行中のオペレーティング システムに対しては、次のアプリ パッケージ (.appx または .appxbundle) サービス オプションを使用できます。

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

/Get-Help /?

アプリ パッケージ サービス コマンドライン オプションの直後に使用すると、オプションと引数に関する情報が表示されます。 イメージを指定すると、追加のトピックが使用可能になる場合があります。

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

/Get-ProvisionedAppxPackages

新しいユーザーごとにインストールするように設定されているイメージ内のアプリ パッケージ (.appx または .appxbundle) に関する情報を表示します。

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

/Add-ProvisionedAppxPackage

1 つ以上のアプリ パッケージをイメージに追加します。

アプリは、Windows イメージに追加され、次回ユーザーがログインしたときに、それぞれの既存または新規のユーザー プロファイルに登録されます。 アプリがオンライン イメージに追加された場合、アプリは、次回ユーザーがログインするまで現在のユーザーに登録されません。

アプリを監査モードでオンライン オペレーティング システムにプロビジョニングすると、(ディスク領域の使用量を最小限に抑えるために) まったく同じファイルを含むアプリに対して適切なハード リンクを作成できる一方で、インストールを正常に完了できるように実行されている他のアプリがないことを確認できます。

構文

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>]
  • /FolderPath を使用して、メイン パッケージ、依存関係パッケージ、およびライセンス ファイルを含む解凍されたアプリ ファイルのフォルダーを指定します。 これは、解凍されたアプリ パッケージでのみサポートされます。

  • /PackagePath を使用して、アプリ パッケージ (.appx または .appxbundle) を指定します。 /PackagePath は、基幹業務アプリをオンラインでプロビジョニングする場合に使用できます。

    重要

    .appxbundle パッケージをプロビジョニングするには、/PackagePath パラメーターを使用します。 また、/PackagePath を使用して依存関係パッケージをプロビジョニングすることはできません。これらは、アプリの /DependencyPackagePath パラメーターを使用してプロビジョニングする必要があります。

  • /PackagePath は、Windows プレインストール環境 (WinPE) 4.0、Windows Server 2008 R2、または以前のバージョンの Windows を実行しているホスト PC ではサポートされていません。

  • /Region を使用して、アプリ パッケージ (.appx または .appxbundle) をプロビジョニングする必要がある地域を指定します。 region 引数には、次のいずれかを指定できます。

    • all。アプリをすべての地域にプロビジョニングする必要があることを示します。または
    • セミコロンで区切られた地域の一覧。 地域は、ISO 3166-1 Alpha-2 または ISO 3166-1 Alpha-3 codes-3 コード形式で指定します。 たとえば、米国は "US" または "USA" (大文字と小文字は区別されません) として指定できます。 地域のリストを指定しなかった場合、パッケージは、スタート レイアウトにピン留めされている場合にのみプロビジョニングされます。
  • /DependencyPackagePath を使用して、プロビジョニングするアプリに必要な各依存関係パッケージを指定します。 アプリに必要な依存関係パッケージは、アプリの .appx パッケージのルートにある AppxManifest.xml の <PackageDependency> 要素を調べることで見つけることができます。 複数のアプリがすべて同じ依存関係を共有している場合は、依存関係パッケージの各メジャー バージョンの最新のマイナー バージョンをインストールする必要があります。 たとえば、App1、App2、および App3 がすべて Microsoft.NET.Native.Framework に依存しているとします。 App1 ではマイナー バージョン 25512.0 の Microsoft.NET.Native.Framework.1.6 が指定され、App2 ではマイナー バージョン 25513.0 の Microsoft.NET.Native.Framework.1.6 が指定され、App3 ではマイナー バージョン 24202.0 の Microsoft.NET.Native.Framework.1.3 が指定されているとします。 App1 と App2 の両方で依存関係パッケージの同じメジャー バージョンが指定されているため、インストールする必要があるのは最新のマイナー バージョン 25513.0 のみです。一方、App3 では、依存関係パッケージの異なるメジャー バージョンが指定されているため、これをインストールする必要があります。 したがって、インストールする必要がある依存関係パッケージは、マイナー バージョン 25513.0 の Microsoft.NET.Native.Framework.1.6 とマイナー バージョン 24202.0 の Microsoft.NET.Native.Framework.1.3 となります。

    パッケージにアーキテクチャ固有の依存関係がある場合は、ターゲット イメージに対する依存関係に該当するすべてのアーキテクチャをインストールする必要があります。 たとえば、x64 ターゲット イメージでは、x86 と x64 の両方の依存関係パッケージへのパスを含めるか、その両方を解凍されたアプリ ファイルのフォルダーに含めます。 Arm 依存関係パッケージも指定または含まれている場合、ターゲットの x64 イメージには適用されないため、DISM はそれを無視します。

    コンピューターのアーキテクチャインストールする依存関係:
    X64x64 および x86
    x86x86
    ArmArm のみ
  • /CustomDataPath を使用して、アプリのオプションのカスタム データ ファイルを指定します。 任意のファイル名を指定できます。 イメージに追加されたファイルの名前は Custom.dat に変更されます。

  • /LicensePath/PackagePath オプションと共に使用して、アプリケーション ライセンスを含む .xml ファイルの場所を指定します。

  • /SkipLicense は、サイドローディング対応のコンピューターでライセンスを必要としないアプリに対してのみ使用してください。 他のシナリオで /SkipLicense を使用すると、イメージが損なわれる可能性があります。

例:

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

アプリ パッケージ (.appx または .appxbundle) のプロビジョニングをイメージから削除します。 アプリ パッケージは、新しく作成されたユーザー アカウントには登録されません。

構文

/Remove-ProvisionedAppxPackage /PackageName:<PackageName>

重要

このオプションでは、パッケージがいずれかのユーザー プロファイルに登録されている場合にのみ、パッケージのプロビジョニングが削除されます。 アプリをイメージから完全に削除するために既に登録されている各ユーザーのアプリを削除するには、PowerShell の Remove-AppxPackage コマンドレットを使用してください。 アプリがどのユーザー プロファイルにも登録されていない場合に /Remove-ProvisionedAppxPackage オプションを使用すると、パッケージが完全に削除されます。 デスクトップ エクスペリエンスがインストールされている Windows Server 2012 以降のイメージからアプリ パッケージを削除するには、デスクトップ エクスペリエンスを削除する前にアプリ パッケージを削除する必要があります。 デスクトップ エクスペリエンスは、Windows Server の Server Core インストールの /Remove-ProvisionedAppxPackage オプションの要件です。

例:

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

/Optimize-ProvisionedAppxPackages

同一のファイルをハードリンクに置き換えることにより、イメージ上のプロビジョニングされたパッケージの合計ファイル サイズを最適化します。 プロビジョニングされた AppX パッケージを含むイメージがオンラインのときは、/optimize-provisionedappxpackages を使用してプロビジョニングされた AppX パッケージを最適化することはできません。 イメージをオフラインにしてパッケージを追加する場合、イメージがオフラインに戻された後にプロビジョニングされたパッケージのみが最適化されます。

このコマンドは、オンライン イメージに対してはサポートされていません。

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

/Set-ProvisionedAppxDataFile

指定したアプリ パッケージ (.appx または .appxbundle) にカスタム データ ファイルを追加します。

構文

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

このオプションを使用してカスタム データ ファイルを追加する前に、指定したアプリ (.appx または .appxbundle) パッケージをイメージに追加しておく必要があります。 /Add-ProvisionedAppxPackage オプションを使用するときにカスタム データ ファイルを追加することもできます。

  • /CustomDataPath を使用して、アプリのオプションのカスタム データ ファイルを指定します。 任意のファイル名を指定できます。 イメージに追加されたファイルの名前は Custom.dat に変更されます。 Custom.dat ファイルが既に存在する場合は上書きされます。

  • /PackageName を使用して、アプリ パッケージ (.appx または .appxbundle) を指定します。

例:

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

アプリ パッケージ サービス オプションと組み合わせて使用して、パッケージのスタブ設定を指定します。

構文

/StubPackageOption:{installstub | installfull}
  • InstallStub を使用して、プロビジョニング パッケージをスタブ バージョンに設定します。 スタブ設定を暗黙的に stub に設定します。
  • InstallFull を使用して、プロビジョニング パッケージを完全バージョンに設定します。 スタブ設定を暗黙的に full に設定します。

スタブ パッケージ オプションを指定しなかった場合、プロビジョニングされたパッケージのバージョンは、事前定義されたスタブ設定に設定されます。

例:

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

DISM で .appxbundle リソース パッケージをイメージに追加する方法について

.appxbundle をイメージに追加した場合、バンドル内のすべてのリソース パッケージが適用可能であるとは限りません。 たとえば、既定の言語がスペイン語 (スペイン) の Windows イメージにアプリを追加する場合は、フランス語 (フランス) のリソースを含めてはいけません。 イメージに追加されるリソースを決定するために、以下を使用してパッケージの適用性が決定されます。

  • 言語リソース パック: オペレーティング システムの言語が存在しない場合、対応するアプリ言語リソース パックは追加されません。 たとえば、既定の言語が英語 (米国) でスペイン語 (スペイン) 言語パックが含まれる Windows 10 イメージがあるとします。 このイメージには、英語 (米国) とスペイン語 (スペイン) のアプリ リソース パックが追加されます。 アプリ バンドルでフランス語 (フランス) のリソース パック (またはその他の言語) が利用できる場合でも、それは追加されません。

  • スケールおよび DirectX (DXFL) リソース パック: スケールおよび DirectX (DXFL) リソース パックは、Windows デバイスのハードウェア構成によって異なります。 DISM コマンドを実行する際はターゲット ハードウェアの種類がわからないため、プロビジョニング時にすべてのスケールおよび DXFL リソース パッケージがイメージに追加されます。 スケーリング リソースを使用したアプリの開発の詳細については、ピクセル密度へのスケーリングに関するガイドライン (Microsoft Store アプリ) に関するページを参照してください。

複数の言語パックを含むイメージの場合、アプリのリソース パッケージは各言語のイメージに追加されます。 最初のユーザーが展開されたイメージを使用して PC にサインインし、OOBE 中に言語を選択すると、ユーザー プロファイル設定と一致しない適用できないリソース パッケージ (言語リソース パック、スケール リソース パック、および DXFL リソース パッケージ) は削除されます。

たとえば、アプリが英語 (米国)、フランス語 (フランス)、スペイン語 (スペイン) の言語をサポートしているとします。 英語 (米国) とスペイン語 (スペイン) の言語パックが存在するイメージにアプリを追加した場合、英語 (米国) とスペイン語 (スペイン) のリソース パックのみがイメージに追加されます。 その後、ユーザーが初めてサインインし、OOBE 中にオペレーティング システムの言語として英語 (米国) を選択した場合、サインインが完了した後にスペイン語 (スペイン) のリソース パッケージは削除されます。

重要

イメージに言語パックを追加するか、イメージから言語パックを削除すると、適用性のコンテキストが変更され、不適切または不完全なリソース パッケージのセットがイメージに残る可能性があります。 言語パックを追加または削除する場合は、もう一度、すべての .appxbundle パッケージ (依存関係パッケージと Microsoft Store ライセンス ファイルを含む) をイメージに追加する必要があります。 これにより、リソース パッケージの正しいセットが確実にプロビジョニングされます。

制限事項

  • Windows 8 のアプリをサポートしていないオペレーティング システムには、アプリ パッケージ (.appx) をインストールできません。 最低でも Windows 8.1 のアプリをサポートしていないオペレーティング システムには、アプリ バンドル パッケージ (.appxbundle) をインストールできません。 アプリは、WinPE 4.0、Windows Server 2012 Server Core インストール オプション、または Windows 8 および Windows Server 2012 より古いバージョンの Windows ではサポートされていません。

    Windows Server 2012 にアプリをインストールして実行するには、デスクトップ エクスペリエンスをインストールする必要があります。

  • /FolderPath オプションは、.appx 形式に基づくアプリ パッケージでのみサポートされます。

  • .appxbundle パッケージに対しては必ず /PackagePath を使用する必要があります。

DISM とは

DISM イメージ管理のコマンド ライン オプション

展開イメージのサービスと管理 (DISM) のコマンドライン オプション

DISM を使用したアプリのサイドローディング