DISM を使ったアプリのプレインストール

Note

Microsoft Storeアプリのプレインストールに関心がありますが、OEMではありませんか。 組織でアプリをサイドロードする方法の詳細については、「DISM を使用してアプリをサイドロードする」を参照してください。

このトピックでは、アプリをプレインストールして Windows イメージの一部として含まれるようにする方法について説明します。

ヒント

ハードウェア サポート アプリ (HSA) は Microsoft Store アプリであり、以下の手順が適用されます。

アプリ パッケージの操作

DISM を使用して、アプリをイメージにオフライン プロビジョニングします。 DISM は、コマンド プロンプトまたは Windows PowerShell の DISM コマンドレットから使用できます。

以前のバージョンの Windows 10 では、プレインストールされたユニバーサル アプリおよび Microsoft Store アプリをスタート メニューにピン留めする必要がありました。 プレインストールされたがスタート メニューにピン留めされていないアプリは、Windows によって削除されました。

Windows 10 バージョン 1803 以降では、DISM /add-provisionedappxpackage オプションを指定して /region を使用すると、アプリをスタート メニューにピン留めせずにプレインストールできます。 アプリをプレインストールする際に、LayoutModification.xml からそのアプリを除外するよう選択すると、アプリがスタート メニューのタイルとして表示されずに正常にインストールされます。 領域のリストを指定しなかった場合、アプリは、スタート レイアウトにピン留めされている場合にのみプロビジョニングされます。

パッケージ ファイルを展開する

  1. パートナー ダッシュボードからダウンロードしたアプリ パッケージが保存されているフォルダーに移動します。

  2. アプリ パッケージ ファイルが含まれる各 .zip フォルダーを右クリックします。 [すべて展開] をクリックし、パッケージ ファイル フォルダーを保存する場所を選択します。

    このフォルダーには、パッケージの展開されたすべてのファイル (メイン パッケージ、依存関係パッケージ、ライセンス ファイルなど) が含まれます。

重要

パッケージ ファイルを展開した後は、このフォルダーを変更しないでください。 このフォルダー内のファイルを変更、追加、削除すると、インストール中または起動中にアプリが失敗します。 フォルダーの参照時にも問題が発生する可能性があります。

プロビジョニングされたイメージをテストするには、パッケージファイルのライセンスファイルを使用する必要があります。 独自のカスタム データ ファイルを作成しても、OEM によってプレインストールされたアプリを正確にテストできません。

アプリをイメージにオフライン プロビジョニングするには、Dism.exe ツールまたは Windows PowerShell の DISM コマンドレットを使用して、展開されたファイルのフォルダーからアプリを追加します。

DISM を使用して Microsoft Store 署名済みアプリをプレインストールする

  1. 管理者としてコマンド プロンプトを開きます。

  2. サービスする Windows イメージをマウントします。

    Dism /Mount-Image /ImageFile:c:\images\myimage.wim /Index:1 /mountdir:c:\test\offline
    
  3. マウントされたイメージにアプリを追加します。 /PackagePath オプションと /DependencyPackagePath オプションを使用します。

    • Packagepath は、.appx バンドルまたはパッケージ ファイルのパスです。
    • DependencyPackagePath は、各依存関係パッケージを指定するためのパスです。 1 つのコマンドに複数の依存関係を設定できます。
    • Windows 10 バージョン 1803 からの新機能: アプリを追加するときに Region オプションを使用します。 Region を使用すると、アプリをスタート メニューにピン留めしなくてもアプリを追加できます。
    Dism /Image:c:\test\offline /Add-ProvisionedAppxPackage /PackagePath:c:\downloads\package.appxbundle /DependencyPackagePath:c:\downloads\dependency1.appx /DependencyPackagePath:c:\downloads\dependency2.appx /LicensePath=c:\downloads\package_License1.xml /region=all"
    

    新しい /region オプションも含めたアプリ パッケージの操作の詳細については、DISM アプリ パッケージ サービス コマンド ライン オプションに関するページを参照してください。

  4. スタート メニューにアプリをピン留めします。

    • アプリのプレインストール時に /region を指定しなかった場合は、LayoutModification.xml を使用してアプリをスタート メニューにピン留めします。

      or

    • アプリのプレインストール時に /region を指定しており、特定の領域のスタート メニューにアプリをピン留めする場合は、LayoutModification.xml の RequiredStartGroups Region="region1|region2" 要素を使用して、アプリを表示する領域を指定します。

  5. 変更を保存し、イメージのマウントを解除します。 コマンド プロンプトに、次のコマンドを入力します。

    Dism /Unmount-Image /mountdir:c:\test\offline /commit
    

Note

Microsoft Store アプリは、監査モードでは実行されません。 展開をテストするには、Windows を実行し、新しいユーザー プロファイルを作成します。 監査モードの詳細については、「監査モードの概要」を参照してください。

重要: モバイル ブロードバンド デバイス アプリをプレインストールする場合は、Sysprep の specialize フェーズを実行する前に SIM カードを挿入する必要があります。 モバイル ブロードバンド デバイス アプリのプレインストールの詳細については、モバイル ブロードバンド アプリケーション エクスペリエンスに必要なコンポーネントのプレインストールに関する説明を参照してください。

パッケージの更新または削除

DISM.exe ツールまたは Windows PowerShell の DISM コマンドレットを使用して、プレインストールされるアプリ (ライセンスおよびカスタム データ ファイルを含む) を Windows イメージから削除できます。 新しいバージョンをインストールする前に、古いバージョンのアプリを削除する必要があります。

DISM を使用してプレインストールされるアプリを削除する

  1. Windows ADK と共にインストールされた [Deployment ツールのコマンド プロンプト] を管理者特権で開きます。 スタート画面で、「展開およびイメージング ツール環境」と入力し、アイコンを右クリックして、[管理者として実行] を選択します。

  2. サービス用のオフライン イメージをマウントします。 コマンド プロンプトに、次のコマンドを入力します。

    Dism /Mount-Image /ImageFile:c:\images\myimage.wim /Index:1 /mountdir:c:\test\offline
    
  3. 削除するアプリの完全なパッケージ名を検索します。 コマンド プロンプトに、次のコマンドを入力します。

    Dism /Image:C:\test\offline /Get-ProvisionedAppxPackages
    
  4. マウントされたイメージからアプリを削除します。 たとえば、コマンド プロンプトで次のように入力します。

    Dism /Image:c:\test\offline /Remove-ProvisionedAppxPackage /PackageName:microsoft.devx.appx.app1_1.0.0.0_neutral_en-us_ac4zc6fex2zjp
    
  5. アプリを更新する場合は、更新されたバージョンの Microsoft Store 署名済みアプリをプレインストールできます。 コマンド プロンプトに次のように入力します。

    Dism /Image:c:\test\offline /Add-ProvisionedAppxPackage/FolderPath:c:\downloads\appxpackage
    
  6. 変更を保存し、イメージのマウントを解除します。 コマンド プロンプトに、次のコマンドを入力します。

    Dism /Unmount-Image /mountdir:c:\test\offline /commit
    

カスタム データ ファイルの使用

PC にプレインストールされたアプリは、インストールに固有のカスタム データにアクセスできます。 このカスタム データは、プレインストール時にアプリに追加され、実行時に使用可能になります。 開発者はカスタム データを使用して、レポート機能を提供するなど、アプリの機能をカスタマイズできます。

Windows イメージにカスタム データ ファイルを追加する

DISM ツールまたは Windows PowerShell の Add-AppxProvisionedPackage コマンドレットを使用してアプリをプレインストールする際には、カスタム データ ファイルを指定する必要があります。 次のコマンドは、DISM ツールを使用してこれを行う方法を示しています。

Dism /Image:C:\test\offline /Add-ProvisionedAppxPackage / FolderPath:f:\Apps\Fabrikam_KnowMyPC /CustomDataPath:f:\Contoso_Promotion.xml

アプリのデータストアにカスタムデータファイルが既に存在する場合 (パッケージが既にイメージに追加されている場合など) 、既存のファイルは上書きされます。 インストールが失敗した場合、ファイルは復元されません。

: Microsoft Store を通じて、カスタム データ ファイルを失うことなくアプリの更新プログラムをリリースできます。 ただし、ユーザーがアプリを削除した場合、ユーザーがアプリを再インストールしてもカスタム データ ファイルは使用できなくなります。

プレインストールされたアプリのカスタム データをテストする

PC にプレインストールされたアプリは、インストールに固有のカスタム データにアクセスできます。 このカスタム データはプレインストール時にアプリに追加され、実行時にアプリで使用可能になります。 開発者はカスタム データを使用して、レポート機能を提供するなど、アプリの機能をカスタマイズできます。

Custom.data ファイルはアプリのインストール場所に表示されます。 Custom.data という名前はハードコーディングされており、変更できません。 アプリはこのファイルの存在をチェックすることで、アプリが PC にプレインストールされたかどうかを確認できます。 Custom.data ファイルにアクセスする方法の例を次に示します。

var outputDiv = document.getElementById("CustomData");
Windows.ApplicationModel.Package.current.installedLocation.getFileAsync
     ("microsoft.system.package.metadata\\Custom.data").then(function (file) {
         // Read the file
         Windows.Storage.FileIO.readTextAsync(file).done(function (fileContent) {
            outputDiv.innerHTML = 
                 "App is preinstalled. CustomData contains:<br /><br />"
                 + fileContent;
         },
         function (error) {
             outputDiv.innerText = "Error reading CustomData " + error;
         });
     },
     function (error) {
         outputDiv.innerText = "CustomData was not available. App not preinstalled";
     });

Custom.data ファイルは任意のコンテンツを含めることができ、アプリに必要な任意の形式にすることができます。 これはプレインストール プロセスによってアプリで簡単に使用できるようになります。 開発者は、このデータ ファイルをプレインストール パートナーに提供するか、またはパートナーがこのコンテンツを生成できるような形式に同意することができます。

カスタム データをテストする

Microsoft Visual Studio でのアプリのビルド中およびデバッグ中は、アプリがまだプレインストールされていないため、アプリのインストール場所から Custom.data ファイルにアクセスすることはできません。 Custom.data ファイルを使用してシミュレートするには、アプリ自体にテスト Custom.data ファイルを配置してから、アプリのローカル ファイルを読み込んでテストします。 これを行うには、次のコード サンプルに変更を加えます。

("microsoft.system.package.metadata\\Custom.data").then(function (file) {

この行を次のように変更します。

("Custom.data").then(function (file) {

ファイルの形式とコンテンツを確認した後で、上の元の例で示したように、Custom.data ファイルの場所を最終的な場所に変更できます。

Custom.data ファイルをテストするには

  1. Windows ADK と共にインストールされた [Deployment ツールのコマンド プロンプト] を管理者特権で開きます。 スタート画面で、「展開およびイメージング ツール環境」と入力し、アイコンを右クリックして、[管理者として実行] を選択します。

  2. カスタム データ ファイルを指定してアプリケーションを追加します。

    dism /online /Add-ProvisionedAppxPackage /PackagePath:.\CustomData_1.0.0.1_AnyCPU_Debug.appx /CustomDataPath:.\Test.txt /SkipLicense
    

    ここで、/PackagePath:.\CustomData_1.0.0.1_AnyCPU_Debug.appx はローカル アプリ テスト パッケージを指し、/CustomDataPath:.\Test.txt は Custom.data ファイルを指します。 ここで指定したファイル名は、アプリにデータをインストールした後は使用されないことに注意してください。

    これで、PC のスタート画面に、アプリのテストに使用するためのタイルが表示されます。 アプリは Custom.data ファイルにアクセスできる必要があります。 追加のデバッグが必要な場合は、スタート画面からアプリを起動した後にデバッガーをアタッチします。

    : アプリをスタート画面に表示するために、サインアウトしてもう一度サインインすることが必要になる場合があります。

  3. アプリのテストが完了したら、開発環境を引き続き使用するために、プレインストールされたパッケージを削除する必要があります。 プレインストールされたパッケージを Windows PowerShell を使用して削除するには、Get-AppxPackage コマンドレットを使用して、Remove-ProvisionedAppxPackage コマンドレットにパイプライン経由で完全なアプリ パッケージ名を渡します。

    Get-AppxPackage *CustomData* | Remove-ProvisionedAppxPackage

    ここで、*CustomData* はアプリの名前の既知の部分です。

Microsoft Store デバイス アプリまたはモバイル ブロードバンド アプリのプレインストール

展開イメージのサービスと管理 (DISM) プラットフォームを使用して、Microsoft Store デバイス アプリまたはモバイル ブロードバンド アプリに必要なコンポーネントをプレインストールできます。

: この記事は、自社のデバイスで Microsoft Store デバイス アプリまたはモバイル ブロードバンド アプリをサポートしようとしている OEM を対象としています。

正しい Microsoft Store デバイス アプリまたはモバイル ブロードバンド アプリを提供するために、アプリの種類ごとに次の 2 つをプレインストールする必要があります。

  • Microsoft Storeデバイスアプリ、プレインストール:
    1. デバイス メタデータ パッケージ
    2. アプリ
  • Microsoft Storeモバイルブロードバンドアプリ、プレインストール:
    1. サービス メタデータ パッケージ
    2. アプリ

重要: メタデータ パッケージおよび対応するアプリは OOBE プロセスの完了後すぐに解析されますが、メタデータ パッケージが解析される前にユーザーがアプリを起動できる場合があります。 その場合、ユーザーにはアクセス拒否エラーが表示されます。 これを回避するには、メタデータ パッケージとアプリの両方をシステム イメージに適用します。

デバイス メタデータ パッケージまたはサービス メタデータ パッケージのプレインストール

デバイス メタデータ パッケージまたはサービス メタデータ パッケージをプレインストールするには

  1. Microsoft Store デバイス アプリをプレインストールする場合は、デバイス メタデータ パッケージを取得している必要があります。 モバイル ブロードバンド アプリをプレインストールする場合は、サービス メタデータ パッケージを取得している必要があります。

    : デバイス メタデータ パッケージとサービス メタデータ パッケージには、同じファイル名拡張子 (.devicemetadata-ms) が使用されます。

  2. デバイス メタデータ パッケージまたはサービス メタデータ パッケージ (devicemetadata-ms ファイル) を、%ProgramData%\Microsoft\Windows\DeviceMetadataStore フォルダー内のシステム イメージにコピーします。 これは、次の方法のいずれかで実行できます。

    • Sysprep の実行前にオンラインで

    • Sysprep の実行後に DISM を使用してオフラインで 手順は次のとおりです。

      1. サービス用のオフライン イメージをマウントします。

        Dism /Mount-Image /ImageFile:C:\test\images\myimage.wim /index:1 /MountDir:C:\test\offline
        
      2. マウントされたイメージのデバイス メタデータ ストアにメタデータ パッケージ ファイルをコピーします。 たとえば、デバイス メタデータ ストア ProgramData\Microsoft\Windows\DeviceMetadataStore0ECF2029-2C6A-41AE-9E0A-63FFC9EAD877.devicemetadata-ms メタデータ パッケージ ファイルをコピーするには、次のようにします。

        copy 0ECF2029-2C6A-41AE-9E0A-63FFC9EAD877.devicemetadata-ms C:\test\offline\ProgramData\Microsoft\Windows\DeviceMetadataStore
        
      3. 変更を保存し、イメージのマウントを解除します。

        dism /Unmount-Image /mountdir: c:\test\offline /commit
        

      オフラインのイメージ サービスの詳細については、DISM の概要に関するページを参照してください。

サービス メタデータの詳細については、「サービス メタデータの概要」を参照してください。

Microsoft Store デバイス アプリまたはモバイル ブロードバンド アプリのプレインストール

Microsoft Store デバイス アプリまたはモバイル ブロードバンド アプリをプレインストールするには

  1. サービス用のオフライン イメージをマウントします。

    Dism /Mount-Image /ImageFile:C:\test\images\myimage.wim /index:1 /MountDir:C:\test\offline
    
  2. イメージに Microsoft Store デバイス アプリまたはモバイル ブロードバンド アプリを追加します。

    dism /Image:<mounted folder> /Add-ProvisionedAppxPackage /FolderPath:<appxpackage path>
    
  3. 変更を保存し、イメージのマウントを解除します。

    dism /Unmount-Image /mountdir: c:\test\offline /commit