イメージング プロセス中に OEM アプリケーションを登録する

重要

ユニバーサル オーケストレーターは、イメージング プロセス中に OEM がアプリケーションを登録して、1 回限りの迅速なインストールまたは更新を実行する機能を提供します。 このインストールは、ユーザーが新しいデバイスにログインしてから 30 分以内に行われます。 アプリケーションを迅速化すると、新しいデバイスのすぐに使用できるエクスペリエンスにパフォーマンスに悪影響を及ぼす可能性があります。

この機能は、次の機能で使用できます。

  • Windows 11 23H2 - KB5046732 (OS ビルド 22631.4541)
  • Windows 11 24H2 - KB5046740 (OS ビルド 26100.2454)
  • Windows 11 25H2 以降の Windows バージョン

必要条件

迅速なアプリ フレームワークにプラグインするには、アプリが次の要件を満たしている必要があります。

  • MSIX 形式のストア パッケージ アプリである必要があります
  • 有効な製品ファミリ名 (PFN) が必要です。

登録

登録ファイルは、必要な迅速なフローと、実行する必要があるカスタム クライアント側のターゲット設定に関する情報を含むメタデータを含む ASCII JSON ファイルです。

迅速なアプリでは、アプリを更新/取得するための 2 つのメカニズムがサポートされています。

  1. Microsoft Store から ProductId を使用して (推奨)
  2. MSIX パッケージまたはバンドルを含む URL から。 このパッケージには、有効なパッケージ ファミリ名 (PFN) を持つストア パッケージ アプリが含まれている必要があります。 OEM またはアプリ所有者は、この URL を維持する責任があります。

各登録ファイルには、次の必須 JSON プロパティが含まれている必要があります。

鍵 タイプ 説明
PFN 糸 アプリのパッケージ ファミリ名 (例: Microsoft.WindowsStore_8wekyb3d8bbwe)
OEMName 糸 この登録を作成する OEM を表す文字列。

英数字、アンダースコア、ハイフンのみを含める必要があります。
UpdaterName 糸 この迅速な登録を追跡する一意の名前。

英数字、アンダースコア、ハイフンのみを含める必要があります。
RegistrationVersion 数値 このアプリ登録のバージョン
ソース 糸 使用できる値:

ストア | CustomURL

ストア - Microsoft Store から直接アプリを検索します

CustomURL - アプリ登録の "エンドポイント" 値で指定された URL からアプリを検索します
シナリオ 糸 使用できる値:

更新 | 取得 | StubAcquisition

更新 - (CustomURL フローではサポートされていません) は、既存のアプリを使用可能な最新バージョンに更新しようとします。 アプリが存在しない場合、作業は行われません

取得 - アプリの最新バージョンの取得を試みます。

StubAcquisition - アプリの 「スタブ」 の取得を試みます (使用可能な場合)。 スタブが使用できない場合、完全版アプリをインストールします。
ProductId 糸 (ストア シナリオでのみ必要)

目的のストア アプリの ProductId
エンドポイント 糸 (CustomURL シナリオでのみ必要)

MSIX パッケージをホストする場所を指す文字列 URI。 'https' で始まる SSL URI である必要があります。

さらに、次の省略可能なプロパティを指定して、迅速なアプリのインストールの動作を変更したり、特定の条件下でのみ迅速なフローを実行するように指定したりできます。

鍵 タイプ 既定値 説明
AllowedInOobe ブール値 誤り この迅速化されたアプリをユーザー OOBE 中に実行する必要があるかどうか。

大事な: Out of Box Experience フロー中にデバイスにリソース制約が発生し、ユーザーが認識するパフォーマンスに悪影響を与える可能性があるため、true に設定する場合は注意が必要です。
最大再試行回数 (MaxRetryCount) 数値 1 このアップデータが失敗後に再試行できる回数。

許容される最大値は 5 です。
タイムアウトの持続時間(分単位) 数値 15 このアップデーターが作業を完了するまで待機する時間 (分)。

許容される最大値: 30
建築 糸 制限なし 使用できる値:

"amd64" | "arm64"

特定のアーキテクチャに対してのみ迅速な作業を実行するかどうかを指定します。
許可される最小ビルドバージョン 数値 制限なし 迅速な作業が許可される Windows ビルドの最小バージョン。

たとえば、22631 に設定すると、Windows 11 23H2 (10.0.22631.x) では迅速な作業が許可されますが、Windows 11 22H2 (10.0.22621.x) ではブロックされます。
HonorDeprovisioning ブール値 誤り (取得シナリオにのみ適用されます)

アプリが以前にプロビジョニング解除された場合は、再度取得しないでください。
SkipIfPresent ブール値 誤り (取得シナリオにのみ適用されます)

いずれかのバージョンのアプリが既に存在する場合は、迅速な作業を実行しないでください。
優先権 数値 100 このアプリケーション更新の相対的な優先順位を示す 1 から 100 までの数値。

値が小さいと、他の優先アプリに対する相対的な優先順位が高いことを示します。
除外地域 Array (String) 制限なし このアプリを高速化すべきではないリージョンの文字列の JSON 配列。

配列内の各エントリは、目的のリージョンの 2 文字の ISO 3166-1 国コードに対応します。

例: ["US", "MX"] は、リージョンが米国またはメキシコのデバイスでこのフローを防ぎます。

この値は IncludedRegions では使用できません。
含まれる地域 Array (String) 制限なし このアプリの処理を優先すべきリージョンの許可リストを示す、文字列の JSON 配列。

配列内の各エントリは、目的のリージョンの 2 文字の ISO 3166-1 国コードに対応します。

例: ["US", "MX"] は、リージョンが米国またはメキシコのデバイスでのみこのフローを許可します。

この値は ExcludedRegions では使用できません。
IncludedEditions 配列 (数値) 制限なし このアプリを高速化する必要があるエディションの許可リストを示す数値の JSON 配列。

配列内の各エントリは、GetProductInfo APIによって取得された Edition コードに対応します。

例: [121, 122] は Education エディションと EducationN エディションのみを含める

この値は ExcludedEditions では使用できません。
除外されたエディション 配列 (数値) 制限なし このアプリを優先処理しないエディションの番号を格納した JSON 配列。

配列内の各エントリは、GetProductInfo APIによって取得された Edition コードに対応します。

[121, 122]: Education および EducationN エディションを除外する例。

この値は IncludedEditions では使用できません。

サンプル

ストア ベースでのスタブ取得 (米国およびメキシコのみ)で、OOBE 中に実行されるもの

{  
    "OEMName": "Contoso",
    "UpdaterName": "OEMApp1",
    "RegistrationVersion":1,  
    "Source": "Store",  
    "Scenario": "StubAcquisition",  
    "PFN": "FakePackageFamilyName",  
    "ProductId": "StoreProductId",  
    "HonorDeprovisioning": true,  
    "AllowedInOobe": true,  
    "IncludedRegions": ["US", "MX"],  
    "Priority": 50  
}

Windows 11 23H2 でのみ、Amd64 デバイス (Education および EducationN エディションを除く) での URL ベースのアプリの取得 (not Windows 11 22H2)

{  
    "OEMName": "Contoso",
    "UpdaterName": "OEMApp1",
    "RegistrationVersion":2,  
    "Source": "CustomURL",  
    "Scenario": "Acquisition",  
    "PFN": "FakePackageFamilyName",  
    "Endpoint": "https://<SSL_URI>",   
    "ExcludedEditions": [121, 122],   
    "Architecture": "amd64",   
    "MinimumAllowedBuildVersion": 22631,  
    "Priority": 60 
}

ツール

登録プロセスを容易にし、登録メタデータに関する実用的なフィードバックを提供するには、OEM は次の場所から PowerShell スクリプト AppOrchestration を使用する必要があります。

microsoft/ms-update-universalorchestrator: Universal Orchestrator ベースの更新フローにオンボードするためのスクリプトとツール

スクリプトは基本的な検証を実行し、デバイス上の適切な場所に登録をステージングします。 エラーが発生した場合、スクリプトは特定のエラーの詳細を含む例外をスローします。

スクリプトを使用するには:

  1. スクリプトをデバイスにダウンロードします。 GitHub リポジトリ ページから、ZIP ファイルとしてダウンロードし、デバイスに展開することを選択できます
  2. PowerShell ウィンドウで、"Import-Module <PathToScripts>\scripts\AppOrchestration.psd1" を実行します

手記

これらのスクリプトでは、ユーザーがデバイスに対する管理特権を持っている必要があり、管理者特権のコンソールから実行する必要があります。

登録フローには、次の 4 つの主要なコマンドレットが使用されます。

Test-UpdaterRegistration <PathToRegistrationFile>
目的: (登録を実行せずに) 提案された登録ファイルの内容を検証します。 OEM がデバイスに影響を与えずに登録ファイル ペイロードを反復処理できるようにします。

Add-UpdaterRegistration < PathToRegistrationFile>
目的: 登録ファイルの内容を検証して適切な場所にステージングし、迅速なアプリ フローにオンボードします。

Get-UpdaterRegistration < OEMName><UpdaterName>
目的: OEMName と UpdaterName が指定されている場合は、それらの値と一致する既存の登録の概要を返します。 これらの入力を省略した場合は、デバイスに存在するすべての現在の登録の概要を返します。

Remove-UpdaterRegistration < OEMName><UpdaterName>
目的: OEMName と UpdaterName の値に一致する登録を未設定に戻します。

実行

ユニバーサル オーケストレーター フレームワークは、ユーザーが新しいデバイスでデスクトップに到達してから最初の 30 分以内 (または AllowedInOobe が true に設定されている場合は User OOBE の間) に、相対的な優先順位に基づいて、登録されている各アプリを自動的に順番に呼び出します。 OEM 登録プロセスによって追加された登録された各アプリケーションは、次のいずれかになるまで試行されます。

  • 正常にインストールされました
  • MaxRetryCount で指定されたエラーの最大数を超えています。 エラーが発生するたびに、アプリは 30 分のクール ダウン期間に入り、再試行されます。

次のいずれかの条件に該当する場合、ユニバーサル オーケストレーター フレームワークは迅速な試行を実行しません。

  • デバイスはインターネットにアクセスできません。
  • デバイスは従量課金制のネットワークに接続されています。
  • デバイスがバッテリに搭載され、バッテリ セーバーが有効になっています。
  • デバイスは、Windows Update の制限付きネットワーク トラフィック ポリシーで構成されます。
  • デバイスは、AutoApprove に設定されていない CTA ポリシー で構成されます。

いずれの場合も、ユニバーサル オーケストレーター フレームワークは、デバイス構成で迅速な試行を続行できるようになるまで、登録を維持します。

アプリの登録に、迅速なフローをブロックする省略可能な値 (エディションの種類など) が含まれている場合、ユニバーサル オーケストレーター フレームワークでは、この登録要求が満たされたと見なされ、後でデバイスでこれらの条件が変更される可能性がある場合でも、再び試みることはありません。

重要

更新操作はデバイスが使用中であり、新しいデバイスでのユーザー エクスペリエンスのパフォーマンスに悪影響を及ぼす可能性があるため、このフレームワークを使用してアプリを迅速化することを選択する場合は注意してください。

デバイスの回復とリセットの登録の保持

迅速化されたアプリケーションのインストールまたは更新がデバイスの回復またはリセットのシナリオの後でも発生するようにするには、ユーザー状態移行ツール (USMT) を使用して段階的な登録を移行します。復旧またはリセットの前に ScanState.exe でキャプチャし、復旧またはリセット後に LoadState.exe で復元します。 詳細については、 USMT のドキュメントを参照してください。