次の方法で共有


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

大事な

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

Windows 11 23H2 - KB5046732 (OS ビルド 22631.4541)
Windows 11 24H2 - KB5046740 (OS ビルド 26100.2454)

必要条件

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

  • MSIX 形式のストア パッケージ アプリである必要があります

  • 有効な製品ファミリ名 (PFN) が必要です。

登録

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

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

  1. Microsoft Store から、ProductId (推奨) を使用して

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

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

種類 説明
PFN アプリのパッケージ ファミリ名 (例: Microsoft.WindowsStore_8wekyb3d8bbwe)
OEMName この登録を作成する OEM を表す文字列
UpdaterName この迅速な登録を追跡する一意の名前
登録バージョン 数字 このアプリ登録のバージョン
使用できる値:

ストア | CustomURL

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

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

更新 | 取得 | StubAcquisition

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

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

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

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

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

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

種類 デフォルト 説明
許可InOobe ブーリアン 誤り この迅速化されたアプリをユーザー OOBE 中に実行する必要があるかどうか。

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

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

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

amd64 | arm64

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

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

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

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

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

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

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

注: この値は IncludedRegions では使用できません。
含まれる地域 配列 (文字列) 制限なし アプリが速やかに処理される許可された地域を示す文字列のJSON配列。

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

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

注: この値は ExcludedRegions では使用できません。
含まれるエディション 配列 (数値) 制限なし このアプリを高速化する必要があるエディションの許可リストを示す数値の 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 分のクール ダウン期間に入り、再試行されます。

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

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

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

大事な

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