Condividi tramite


Registrare un'applicazione OEM durante il processo di creazione dell'immagine

Importante

Universal Orchestrator offre funzionalità agli OEM per registrare un'applicazione durante il processo di creazione dell'immagine per eseguire un'installazione/aggiornamento accelerato una tantum. Questa installazione viene eseguita entro 30 minuti dall'accesso di un utente a un nuovo dispositivo. L'accelerazione dell'elaborazione di una domanda potrebbe avere un impatto negativo sulle prestazioni dell'esperienza iniziale per i nuovi dispositivi. Questa funzionalità è disponibile solo nelle versioni di Windows che eseguono l'aggiornamento cumulativo di anteprima non di sicurezza di novembre 2024.

Windows 11 23H2 - KB5046732 (Build del sistema operativo 22631.4541)
Windows 11 24H2 - KB5046740 (Build del sistema operativo 26100.2454)

Requisiti

Per accedere al framework app accelerato, l'app deve soddisfare i requisiti seguenti:

  • Deve essere un'app in pacchetto nello Store in formato MSIX

  • Deve avere un nome di famiglia di prodotti valido (PFN)

Registrazione

I file di registrazione sono file JSON ASCII che contengono metadati con informazioni sul flusso accelerato desiderato e qualsiasi destinazione lato client personalizzata che deve essere eseguita.

Le app con aggiornamenti rapidi supportano due meccanismi per l'aggiornamento o l'acquisizione di un'app:

  1. Dallo Store Microsoft utilizzando il ProductId (consigliato)

  2. Da un URL che contiene un pacchetto MSIX o un bundle. Questo pacchetto deve contenere un'app pacchettizzata dallo Store con un Nome Famiglia Pacchetto (PFN) valido. L'OEM o il proprietario dell'app è responsabile della gestione di questo URL.

Ogni file di registrazione deve contenere le proprietà JSON necessarie seguenti:

Chiave Digitare Descrizione
PFN Stringa Nome della famiglia di pacchetti dell'app (esempio: Microsoft.WindowsStore_8wekyb3d8bbwe)
OEMName Corda Stringa per rappresentare l'OEM che crea questa registrazione
UpdaterName Stringa Nome univoco per tenere traccia di questa registrazione accelerata
Versione di Registrazione Numero Versione della registrazione dell'app
Fonte Stringa Valori consentiti:

Negozio | CustomURL

Store: cerca l'app direttamente da Microsoft Store

CustomURL: cerca l'app da un URL specificato nel valore "Endpoint" della registrazione dell'app
Scenario Corda Valori consentiti:

Aggiornamento | Acquisizione | StubAcquisition

Aggiornamento: (non supportato per i flussi CustomURL) tenta di aggiornare un'app esistente alla versione più recente disponibile. Non viene eseguito alcun lavoro se l'app non è presente

Acquisizione: tenta di acquisire la versione più recente di un'app.

StubAcquisition: tenta di acquisire uno "stub" dell'app (se disponibile). Acquisisce l'app completa se la versione di prova non è disponibile.
ID prodotto Stringa (Obbligatorio solo per gli scenari dello Store)

ProductId dell'app dello Store desiderata
Punto finale Stringa (Obbligatorio solo per gli scenari CustomURL)

URI stringa che punta a una posizione che ospita un pacchetto MSIX. Deve essere un URI SSL che inizia con "https".

Inoltre, è possibile specificare le proprietà facoltative seguenti per modificare il comportamento dell'installazione accelerata dell'app o impostare come destinazione il flusso accelerato in modo che si verifichi solo in determinate condizioni.

Chiave Digitare Predefinito Descrizione
ConsentitoInOobe Booleano Falso Indica se questa app rapida deve essere eseguita durante la configurazione guidata dell'utente.

Nota: Prestare attenzione quando si imposta su true, poiché ciò potrebbe creare vincoli di risorse in un dispositivo durante il flusso Out of Box Experience e influire negativamente sulle prestazioni percepite dall'utente.
MaxRetryCount Numero 1 Numero di volte in cui questo updater può tentare nuovamente dopo un fallimento.

Il valore massimo consentito è: 5
TimeoutDurationInMinutes Numero 15 Durata in minuti di attesa del completamento di questo aggiornamento.

Il valore massimo consentito è: 30
Architettura Corda Nessuna restrizione Valori consentiti:

"amd64" | "arm64"

Specifica se il lavoro accelerato deve essere eseguito solo per un'architettura specifica.
VersioneMinimaDiBuildConsentita Numero Nessuna restrizione Versioni minime della build di Windows in cui è consentito il lavoro accelerato.

Ad esempio, se impostato su 22631, il lavoro accelerato è consentito per Windows 11 23H2 (10.0.22631.x), ma bloccato per Windows 11 22H2 (10.0.22621.x)
HonorDeprovisioning Booleano Falso (Applicabile solo per gli scenari di acquisizione)

Se l'app è stata deprovisionata in precedenza, non tentare di acquisirla di nuovo.
SaltaSePresente Booleano Falso (Applicabile solo per gli scenari di acquisizione)

Non eseguire il lavoro accelerato se una versione dell'app è già presente.
Priorità Numero 100 Valore numerico compreso tra 1 e 100 per indicare la priorità relativa di questo aggiornamento dell'applicazione.

I valori inferiori indicano una priorità relativa più alta per altre app rapide.
Regioni Escluse Matrice (stringa) Nessuna restrizione Matrice JSON di stringhe per le aree in cui questa app non deve essere accelerata.

Ogni voce nella matrice corrisponde al codice paese ISO 3166-1 di due lettere dell'area desiderata.

Esempio: ["US", "MX"] impedirebbe questo flusso nei dispositivi in cui l'area è Stati Uniti o Messico.

Nota: Questo valore non può essere usato con IncludedRegions.
Aree incluse Matrice (stringa) Nessuna restrizione Matrice JSON di stringhe che indicano un elenco di aree consentite in cui l'app deve essere accelerata.

Ogni voce nella matrice corrisponde al codice paese ISO 3166-1 di due lettere dell'area desiderata.

Esempio: ["US", "MX"] consentirebbe questo flusso solo nei dispositivi in cui l'area è Stati Uniti o Messico.

Nota: Questo valore non può essere usato con ExcludedRegions.
Edizioni Incluse Matrice (numero) Nessuna restrizione Matrice JSON di numeri che indicano un elenco di edizioni consentite in cui l'app deve essere accelerata.

Ogni voce nella matrice corrisponde al codice Edition recuperato dall'API GetProductInfo .

Esempio: [121, 122] per includere solo le Edizioni Education e EducationN

Nota: Questo valore non può essere usato con ExcludedEditions.
Edizioni escluse Matrice (numero) Nessuna restrizione Matrice JSON di numeri per le edizioni in cui questa app non deve essere accelerata.

Ogni voce nella matrice corrisponde al codice Edition recuperato dall'API GetProductInfo .

Esempio: [121, 122] per escludere le edizioni Education ed EducationN.

Nota: Questo valore non può essere usato con IncludedEditions.

Campioni

acquisizione di stub basata su Store, solo negli Stati Uniti e in Messico, da eseguire durante OOBE

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

Acquisizione di app basate su URL dei dispositivi amd64, escluse le edizioni Education e EducationN, solo in Windows 11 23H2 (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 
}

Strumenti

Per facilitare il processo di registrazione e fornire commenti e suggerimenti utilizzabili sui metadati di registrazione, gli OEM devono usare lo AppOrchestration e lo script di PowerShell dalla posizione seguente:

microsoft/ms-update-universalorchestrator: script e strumenti da caricare nei flussi di aggiornamento basati su Universal Orchestrator

Gli script eseguono la convalida di base e eseguono la registrazione nella posizione appropriata nel dispositivo. In caso di errori, gli script generano un'eccezione con i dettagli specifici dell'errore.

Per usare gli script:

  1. Scaricare gli script nel dispositivo. Dalla pagina del repository GitHub è possibile scegliere di scaricare come file ZIP ed estrarre nel dispositivo

  2. In una finestra di PowerShell eseguire "Import-Module <PathToScripts>\scripts\AppOrchestration.psd1"

Nota

Questi script richiedono all'utente di disporre di privilegi amministrativi nel dispositivo e devono essere eseguiti da una console con privilegi elevati.

Per il flusso di registrazione vengono usati quattro cmdlet principali:

Test-UpdaterRegistration <PathToRegistrationFile>
Scopo: convalidare il contenuto di un file di registrazione proposto (senza eseguire la registrazione). Consente all'OEM di scorrere il payload del file di registrazione senza influire sul dispositivo.

Add-UpdaterRegistration <PathToRegistrationFile>
Scopo: convalidare e preparare il contenuto di un file di registrazione nella posizione appropriata per eseguire l'onboarding nel flusso accelerato dell'app.

Get-UpdaterRegistration <OEMName><UpdaterName>
Scopo: se vengono forniti OEMName e UpdaterName, restituire un riepilogo di una registrazione esistente corrispondente a tali valori. Se tali input vengono omessi, restituisce un riepilogo di tutte le registrazioni correnti presenti nel dispositivo.

Remove-UpdaterRegistration <OEMName><UpdaterName>
Scopo: declassare qualsiasi registrazione che corrisponde ai valori di OEMName e UpdaterName.

Esecuzione

Il framework Universal Orchestrator richiama automaticamente ciascuna app registrata, in sequenza in base alla priorità relativa, entro i primi 30 minuti dal momento in cui un utente raggiunge il Desktop su un nuovo dispositivo (o durante l'OOBE utente se AllowedInOobe è impostato su true). Ogni applicazione registrata aggiunta dal processo di registrazione OEM verrà tentata fino a quando:

  • L'installazione è stata completata

  • Supera il numero massimo di errori specificati in MaxRetryCount. Dopo ogni errore, l'app entrerà in un periodo di raffreddamento di 30 minuti prima di riprovare.

Il framework di Universal Orchestrator non eseguirà tentativi accelerati se una delle condizioni seguenti è vera:

  • Il dispositivo non ha accesso a Internet.

  • Il dispositivo è su una rete misurata.

  • Il dispositivo è a batteria e il risparmio batteria è abilitato.

  • Il dispositivo è configurato con un criterio di restrizione del traffico di rete per Windows Update .

  • Il dispositivo è configurato con un criterio CTA che non è impostato per l'approvazione automatica.

In ognuno di questi casi, il framework di Universal Orchestrator mantiene in essere le registrazioni fino a quando la configurazione del dispositivo non consente di procedere rapidamente.

Se la registrazione dell'app contiene valori facoltativi che bloccano il flusso accelerato (ad esempio, a causa del tipo di edizione), il framework di Universal Orchestrator considera la richiesta di registrazione soddisfatta e non lo tenterà di nuovo, anche se tali condizioni potrebbero cambiare successivamente in un dispositivo.

Importante

Prestare attenzione quando si sceglie di accelerare le app tramite questo framework, poiché le operazioni di aggiornamento si verificano quando il dispositivo potrebbe essere in uso e può causare un impatto negativo sulle prestazioni dell'esperienza utente in un nuovo dispositivo.